@sentio/sdk-bundle 2.54.0-rc.8 → 2.54.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/lib/aptos/builtin/0x1.js +1 -1
  2. package/lib/aptos/builtin/0x3.js +1 -1
  3. package/lib/aptos/builtin/0x4.js +1 -1
  4. package/lib/aptos/builtin/index.js +1 -1
  5. package/lib/aptos/ext/index.js +1 -1
  6. package/lib/aptos/index.js +1 -1
  7. package/lib/btc/index.js +1 -1
  8. package/lib/{chunk-542NJB43.js → chunk-2AZ3DDYW.js} +2 -2
  9. package/lib/{chunk-CXGSRLW3.js → chunk-2SDXZNMS.js} +2 -2
  10. package/lib/{chunk-OW7PNQXI.js → chunk-4EPXEM2C.js} +2 -2
  11. package/lib/{chunk-WL2T4PIX.js → chunk-4R3P3DNX.js} +2 -2
  12. package/lib/{chunk-3KEEWCG3.js → chunk-C2Q4CM5A.js} +2 -2
  13. package/lib/{chunk-M6HSLAJ4.js → chunk-D4BGG4V2.js} +2 -2
  14. package/lib/{chunk-RFZC5JYC.js → chunk-DSXBXRSC.js} +2 -2
  15. package/lib/{chunk-4GQKFZWS.js → chunk-HYNPEPEK.js} +2 -2
  16. package/lib/{chunk-OVKYD5BL.js → chunk-ISDMCYZJ.js} +2 -2
  17. package/lib/{chunk-2JVSMCLK.js → chunk-JIW4UTB3.js} +2 -2
  18. package/lib/{chunk-GU4TPSPR.js → chunk-KBR5XLLQ.js} +2 -2
  19. package/lib/{chunk-65MPQCTW.js → chunk-M4IWP4I2.js} +184 -184
  20. package/lib/{chunk-65MPQCTW.js.map → chunk-M4IWP4I2.js.map} +1 -1
  21. package/lib/{chunk-XA5HI7QM.js → chunk-MWNHHNKW.js} +2 -2
  22. package/lib/{chunk-L4QQFA2V.js → chunk-NM2HNEFL.js} +2 -2
  23. package/lib/{chunk-5UWWL2KX.js → chunk-Q6B5XHC2.js} +2 -2
  24. package/lib/{chunk-5UWWL2KX.js.map → chunk-Q6B5XHC2.js.map} +1 -1
  25. package/lib/{chunk-6X3RJ7PD.js → chunk-TWWTSJR3.js} +2 -2
  26. package/lib/{chunk-VZY2WFNQ.js → chunk-V55TBLKA.js} +2 -2
  27. package/lib/{chunk-KMM5CTDH.js → chunk-VYQNLOTQ.js} +2 -2
  28. package/lib/{chunk-3A663CBX.js → chunk-WG3B6X5H.js} +2 -2
  29. package/lib/{chunk-FWJ7PQT3.js → chunk-YSEOUYZV.js} +2 -2
  30. package/lib/core/index.js +1 -1
  31. package/lib/eth/builtin/eacaggregatorproxy.js +1 -1
  32. package/lib/eth/builtin/erc1155.js +1 -1
  33. package/lib/eth/builtin/erc20.js +1 -1
  34. package/lib/eth/builtin/erc721.js +1 -1
  35. package/lib/eth/builtin/index.js +1 -1
  36. package/lib/eth/builtin/weth9.js +1 -1
  37. package/lib/eth/index.js +1 -1
  38. package/lib/fuel/index.js +1 -1
  39. package/lib/index.js +1 -1
  40. package/lib/move/index.js +1 -1
  41. package/lib/solana/builtin/index.js +1 -1
  42. package/lib/solana/index.js +1 -1
  43. package/lib/stark/index.js +1 -1
  44. package/lib/store/index.js +1 -1
  45. package/lib/store/index.js.map +1 -1
  46. package/lib/sui/builtin/0x1.js +1 -1
  47. package/lib/sui/builtin/0x2.js +1 -1
  48. package/lib/sui/builtin/0x3.js +1 -1
  49. package/lib/sui/builtin/index.js +1 -1
  50. package/lib/sui/ext/index.js +1 -1
  51. package/lib/sui/index.js +1 -1
  52. package/lib/testing/index.js +144 -1
  53. package/lib/testing/index.js.map +1 -1
  54. package/lib/utils/index.js +1 -1
  55. package/package.json +2 -2
  56. /package/lib/{chunk-542NJB43.js.map → chunk-2AZ3DDYW.js.map} +0 -0
  57. /package/lib/{chunk-CXGSRLW3.js.map → chunk-2SDXZNMS.js.map} +0 -0
  58. /package/lib/{chunk-OW7PNQXI.js.map → chunk-4EPXEM2C.js.map} +0 -0
  59. /package/lib/{chunk-WL2T4PIX.js.map → chunk-4R3P3DNX.js.map} +0 -0
  60. /package/lib/{chunk-3KEEWCG3.js.map → chunk-C2Q4CM5A.js.map} +0 -0
  61. /package/lib/{chunk-M6HSLAJ4.js.map → chunk-D4BGG4V2.js.map} +0 -0
  62. /package/lib/{chunk-RFZC5JYC.js.map → chunk-DSXBXRSC.js.map} +0 -0
  63. /package/lib/{chunk-4GQKFZWS.js.map → chunk-HYNPEPEK.js.map} +0 -0
  64. /package/lib/{chunk-OVKYD5BL.js.map → chunk-ISDMCYZJ.js.map} +0 -0
  65. /package/lib/{chunk-2JVSMCLK.js.map → chunk-JIW4UTB3.js.map} +0 -0
  66. /package/lib/{chunk-GU4TPSPR.js.map → chunk-KBR5XLLQ.js.map} +0 -0
  67. /package/lib/{chunk-XA5HI7QM.js.map → chunk-MWNHHNKW.js.map} +0 -0
  68. /package/lib/{chunk-L4QQFA2V.js.map → chunk-NM2HNEFL.js.map} +0 -0
  69. /package/lib/{chunk-6X3RJ7PD.js.map → chunk-TWWTSJR3.js.map} +0 -0
  70. /package/lib/{chunk-VZY2WFNQ.js.map → chunk-V55TBLKA.js.map} +0 -0
  71. /package/lib/{chunk-KMM5CTDH.js.map → chunk-VYQNLOTQ.js.map} +0 -0
  72. /package/lib/{chunk-3A663CBX.js.map → chunk-WG3B6X5H.js.map} +0 -0
  73. /package/lib/{chunk-FWJ7PQT3.js.map → chunk-YSEOUYZV.js.map} +0 -0
@@ -1,7 +1,7 @@
1
1
  import { createRequire as createRequireSdkShim } from 'module'; const require = createRequireSdkShim(import.meta.url);
2
- import{a as Ne,b as Me,c as L,e as Pe,f as g,g as M,i as ke}from"./chunk-6X3RJ7PD.js";import{a as T,b as ee}from"./chunk-4WNGQ3EZ.js";import{D as de,E as Ae,a as m,d as z,f as F,i as Ie,m as I,n as _,o as ue,u as je,v as xe,w as X}from"./chunk-FWJ7PQT3.js";import{a as _e}from"./chunk-IVMOWPFA.js";import{B as O,U as ve,Ud as Z,Wd as w,da as ye,ed as Y,td as Q,v as A,xa as N}from"./chunk-65MPQCTW.js";import{a,f as B}from"./chunk-G5BIPHMS.js";import{ListStateStorage as Je,mergeProcessResults as qe}from"@sentio/runtime";var p=B(Q(),1);var Xe="0x0000000000000000000000000000000000000000000000000000000000000000";function f(n){return typeof n!="object"||n==null?!1:n.$kind==="GasCoin"||n.$kind==="Result"||n.$kind==="NestedResult"||n.$kind==="Input"}a(f,"isTransactionArgument");function tt(n,e){return f(n)?n:e.object(n)}a(tt,"transactionArgumentOrObject");function nt(n,e){return f(n)?n:typeof n=="string"?e.pure.string(n):e.pure.u64(n)}a(nt,"transactionArgumentOrPure");function rt(n,e){return f(n)?n:e.pure.address(n)}a(rt,"transactionArgumentOrPureAddress");function st(n,e){return f(n)?n:e.pure.u8(n)}a(st,"transactionArgumentOrPureU8");function ot(n,e){return f(n)?n:e.pure.u16(n)}a(ot,"transactionArgumentOrPureU16");function it(n,e){return f(n)?n:e.pure.u32(n)}a(it,"transactionArgumentOrPureU32");function at(n,e){return f(n)?n:e.pure.u64(n)}a(at,"transactionArgumentOrPureU64");function ct(n,e){return f(n)?n:e.pure.u128(n)}a(ct,"transactionArgumentOrPureU128");function ut(n,e){return f(n)?n:e.pure.u256(n)}a(ut,"transactionArgumentOrPureU256");function dt(n,e){return f(n)?n:e.pure.bool(n)}a(dt,"transactionArgumentOrPureBool");function lt(n,e){return f(n)?n:e.makeMoveVec({elements:n.map(t=>e.object(t))})}a(lt,"transactionArgumentOrVec");function te(n){return{address:n.address,exposedFunctions:Object.entries(n.exposedFunctions).map(([e,t])=>Le(e,t)),name:n.name,structs:Object.entries(n.structs).map(([e,t])=>Ve(e,t))}}a(te,"toInternalModule");function Le(n,e){let t;switch(e.visibility){case"Private":t=X.PRIVATE;break;case"Public":t=X.PUBLIC;break;case"Friend":t=X.FRIEND;break;default:throw Error("No visibility for function"+n)}return{typeParams:e.typeParameters.map(r=>({constraints:r.abilities})),isEntry:e.isEntry,name:n,params:e.parameters.map(j),return:e.return.map(j),visibility:t}}a(Le,"toInternalFunction");function Ve(n,e){return{abilities:e.abilities.abilities,fields:e.fields.map(Ue),typeParams:e.typeParameters.map(t=>({constraints:t.constraints.abilities})),isNative:!1,isEvent:!1,name:n}}a(Ve,"toInternalStruct");function Ue(n){return{name:n.name,type:j(n.type)}}a(Ue,"toInternalField");function j(n){if(typeof n=="string")return new I(n);if("Struct"in n){let e=[n.Struct.address,n.Struct.module,n.Struct.name].join(m),t=n.Struct.typeArguments.map(j);return new I(e,t)}if("Vector"in n)return new I("Vector",[j(n.Vector)]);if("TypeParameter"in n)return new I("T"+n.TypeParameter);if("Reference"in n){let e=j(n.Reference);return e.reference=!0,e}if("MutableReference"in n){let e=j(n.MutableReference);return e.reference=!0,e.mutable=!0,e}throw new Error("Unexpected sui type")}a(j,"toTypeDescriptor");var ne=class extends je{static{a(this,"SuiChainAdapter")}async getChainId(){return this.client.getChainIdentifier()}client;constructor(e){super(),this.client=e}async fetchModule(e,t){return await this.client.getNormalizedMoveModule({package:e,module:t})}async fetchModules(e){let t=await this.client.getNormalizedMoveModulesByPackage({package:e});return Object.values(t)}getMeaningfulFunctionParams(e){return e}toInternalModules(e){return Object.values(e).map(te)}getAllEventStructs(e){let t=new Map;for(let r of e){let s=Ie(r);for(let o of r.structs){let i=new Set(o.abilities);i.has("Drop")&&i.has("Copy")&&t.set(s+m+o.name,o)}}return t}getType(e){return e.type}getData(e){if(e===void 0)throw Error("val is undefined");return"parsedJson"in e?e.parsedJson:e.dataType==="moveObject"||"fields"in e&&"type"in e&&Object.keys(e).length===2?e.fields:e}};var v=class extends xe{static{a(this,"MoveCoder")}constructor(e){super(new ne(e))}load(e,t){let r=this.moduleMapping.get(e.address+"::"+e.name),s=this.moduleMapping.get(t+"::"+e.name);return r&&s||(r=te(e),this.loadInternal(r,t)),r}async decode(e,t){switch(t.qname){case"0x1::ascii::Char":if(e!==void 0&&typeof e!="string"){let s=(await super.decode(e,t)).byte;return String.fromCharCode(s)}case"0x1::ascii::String":if(e!==void 0&&typeof e!="string"){let s=(await super.decode(e,t)).bytes;return new TextDecoder().decode(new Uint8Array(s))}case"0x2::object::ID":if(e!==void 0&&typeof e!="string"){let s=(await super.decode(e,t)).bytes;return Me(s)}case"0x2::url::Url":if(e!==void 0&&typeof e!="string")return(await super.decode(e,t)).url;case"0x2::coin::Coin":if(e!==void 0&&typeof e!="string"){let s=(await super.decode(e,t)).id.id.bytes;return new TextDecoder().decode(new Uint8Array(s))}return e;case"0x2::balance::Balance":return e.value?(await super.decode(e,t)).value:BigInt(e);case"0x1::option::Option":if(e===null)return e;if(e.vec){let s=await super.decode(e,t);return s=s.vec,s.length===0?null:s[0]}return this.decode(e,t.typeArgs[0]);case"Address":return Ne(e);case"0x1::string::String":if(typeof e!="string")return new TextDecoder().decode(new Uint8Array(e.bytes));default:return super.decode(e,t)}}decodeEvent(e){return this.decodedStruct(e)}filterAndDecodeEvents(e,t){return typeof e=="string"&&(e=_(e)),this.filterAndDecodeStruct(e,t)}async getDynamicFields(e,t=ue,r=ue){let s=new I("0x2::dynamic_field::Field");return s.typeArgs=[t,r],(await this.filterAndDecodeObjects(s,e)).map(i=>i.data_decoded)}filterAndDecodeObjects(e,t){return this.filterAndDecodeStruct(e,t)}async decodeFunctionPayload(e,t){let r=[e.package,e.module,e.function].join(m),s=await this.getMoveFunction(r),o=this.adapter.getMeaningfulFunctionParams(s.params),i=[];for(let c of e.arguments||[]){let d=c;if("Input"in d){let C=d.Input,h=t[C];h.type==="pure"?i.push(h.value):(h.type==="object"||console.error("unexpected function arg value"),i.push(void 0))}else i.push(void 0)}let u=await this.decodeArray(i,o,!1);return{...e,arguments_decoded:u}}bcsRegistered=new Set;bcsRegistry=new Map;async getBCSTypeWithArgs(e,t=[]){let r=e.qname,s=e.getNormalizedSignature(),o=this.bcsRegistry.get(s);if(o)return o;let i=r.toLowerCase();switch(i){case"u8":case"u16":case"u32":case"u64":case"u128":case"u256":case"bool":return L[i]();case"address":return L.Address;case"vector":return L.vector(t[0]);default:if(!r.includes("::"))throw`Unimplemented builtin type ${r}`}let u;try{u=await this.getMoveStruct(r)}catch(d){throw console.error("Invalid move address",r),d}let c={};for(let d of u.fields)if(d.type.qname.startsWith("T")&&t.length){let C=+d.type.qname.slice(1);c[d.name]=t[C]}else d.type.typeArgs.length&&t.length?c[d.name]=await this.getBCSTypeWithArgs(d.type,t):c[d.name]=await this.getBCSType(d.type);return L.struct(r,c)}async getBCSType(e){let t=await Promise.all(e.typeArgs.map(s=>this.getBCSType(s))),r=await this.getBCSTypeWithArgs(e,t);return this.bcsRegistry.set(e.getNormalizedSignature(),r),r}async registerBCSTypes(e){let t=e.getNormalizedSignature();if(this.bcsRegistered.has(t))return;this.bcsRegistered.add(t);let r=await this.getBCSType(e);this.bcsRegistry.set(e.getNormalizedSignature(),r)}async decodeBCS(e,t,r){if(await this.registerBCSTypes(e),typeof t=="string"){let o=Buffer.from(t,r);t=new Uint8Array(o,o.byteOffset,o.byteLength)}return this.bcsRegistry.get(e.getNormalizedSignature())?.parse(t)}async decodeDevInspectResult(e){let t=[];if(e.results!=null)for(let r of e.results)if(r.returnValues)for(let s of r.returnValues){let o=_(s[1]),i=await this.decodeBCS(o,new Uint8Array(s[0])),u=await this.decodeType(i,o);t.push(u)}else t.push(null);return{...e,results_decoded:t}}},Ge="https://fullnode.mainnet.sui.io/",Ee=new Map;function He(n=Ge){let e=Ee.get(n);return e||(e=new v(new Pe({url:n})),Ee.set(n,e)),e}a(He,"defaultMoveCoder");var De=new Map,le;async function $e(n){let e=De.get(n);if(!e){e=new v(n);let t=await n.getChainIdentifier(),r=He();le||(le=await r.adapter.getChainId()),t===le&&(e=r),De.set(n,e)}return e}a($e,"getMoveCoder");var Re=new Map;function P(n=g.MAIN_NET){let e=Re.get(n);return e||(e=new v(M(n)),Re.set(n,e)),e}a(P,"defaultMoveCoder");import("node:process").then(n=>n.stdout.write(""));var b=class extends de{static{a(this,"SuiContext")}moduleName;timestamp;checkpoint;transaction;eventIndex;coder;constructor(e,t,r,s,o,i,u,c){super(c),this.address=r.toLowerCase(),this.network=t,this.moduleName=e,this.timestamp=s,this.checkpoint=o,this.eventIndex=u,this.coder=P(t),i&&(this.transaction=i)}getChainId(){return this.network}getTimestamp(){return this.timestamp.getDate()}getMetaDataInternal(e,t){return{address:this.address,contractName:this.moduleName,blockNumber:this.checkpoint,transactionIndex:0,transactionHash:this.transaction?.digest||"",logIndex:this.eventIndex,chainId:this.getChainId(),name:e,labels:Y(t)}}get client(){return M(this.network)}},k=class extends de{static{a(this,"SuiObjectChangeContext")}timestamp;checkpoint;coder;txDigest;constructor(e,t,r,s,o,i){super(i),this.address=t,this.network=e,this.timestamp=r,this.checkpoint=s,this.txDigest=o,this.coder=P(e)}getChainId(){return this.network}getTimestamp(){return this.timestamp.getDate()}getMetaDataInternal(e,t){return{address:this.address,contractName:"*",blockNumber:this.checkpoint,transactionIndex:-1,transactionHash:this.txDigest,logIndex:0,chainId:this.getChainId(),name:e,labels:Y(t)}}get client(){return M(this.network)}},pe=class extends Ae{static{a(this,"SuiAddressContext")}address;network;checkpoint;timestamp;coder;contractName="address";constructor(e,t,r,s,o){super(o),this.address=t,this.network=e,this.checkpoint=r,this.timestamp=s,this.coder=P(e)}getChainId(){return this.network}getMetaDataInternal(e,t){return{address:this.address,contractName:this.contractName,blockNumber:this.checkpoint,transactionIndex:0,transactionHash:"",logIndex:0,chainId:this.getChainId(),name:e,labels:Y(t)}}get client(){return M(this.network)}getTimestamp(){return this.timestamp.getDate()}},re=class extends pe{static{a(this,"SuiObjectContext")}contractName="object";objectId;objectVersion;constructor(e,t,r,s,o,i){super(e,t,s,o,i),this.objectId=t,this.objectVersion=r}};import("node:process").then(n=>n.stdout.write(""));function Be(n){let e=n.transaction?.data.transaction;if(!e)return[];let t=e.kind==="ProgrammableTransaction"?e:void 0;return t?t.transactions.flatMap(r=>{if("MoveCall"in r){let s=r.MoveCall;return s.package=z(s.package),[s]}return[]}):[]}a(Be,"getMoveCalls");import("node:process").then(n=>n.stdout.write(""));var V={resourceChanges:!1,allEvents:!1,inputs:!1};function me(n){return{startCheckpoint:n.startCheckpoint||0n,address:n.address===w?w:F(n.address),network:n.network||g.MAIN_NET,baseLabels:n.baseLabels}}a(me,"configure");var U=class n extends Je{static{a(this,"SuiProcessorState")}static INSTANCE=new n},G=class{static{a(this,"SuiBaseProcessor")}moduleName;config;eventHandlers=[];callHandlers=[];objectChangeHandlers=[];coder;constructor(e,t){return this.moduleName=e,this.config=me(t),U.INSTANCE.addValue(this),this.coder=P(this.config.network),ee(this)}getChainId(){return this.config.network}onMoveEvent(e,t,r){let s=[],o=N.fromPartial({...V,...r});Array.isArray(t)?s=t:s.push(t);let i=this,u=new Set(s.map(c=>c.type));return this.eventHandlers.push({handlerName:T(),handler:a(async function(c){if(!c.transaction)throw new p.ServerError(p.Status.INVALID_ARGUMENT,"event is null");let d=c.transaction;if(!d.events||!d.events.length)throw new p.ServerError(p.Status.INVALID_ARGUMENT,"no event in the transactions");let C=[];for(let h of d.events){let H=Number(h.id.eventSeq)||0,[we,R,ce]=_(h.type).qname.split(m);if(!u.has([R,ce].join(m)))continue;let K=new b(i.moduleName,i.config.network,i.config.address,c.timestamp||new Date(0),c.slot,d,H,i.config.baseLabels),Fe=await i.coder.decodeEvent(h);await e(Fe||h,K),C.push(K.stopAndGetResult())}return qe(C)},"handler"),filters:s,fetchConfig:o}),this}onEntryFunctionCall(e,t,r){let s=[],o=N.fromPartial({...V,...r});Array.isArray(t)?s=t:s.push(t);let i=this,u=new Set(s.map(c=>c.function));return this.callHandlers.push({handlerName:T(),handler:a(async function(c){if(!c.transaction)throw new p.ServerError(p.Status.INVALID_ARGUMENT,"call is null");let d=c.transaction,C=new b(i.moduleName,i.config.network,i.config.address,c.timestamp||new Date(0),c.slot,d,0,i.config.baseLabels);if(d){let h=Be(d),H=d.transaction?.data?.transaction;if(!H)throw new p.ServerError(p.Status.INVALID_ARGUMENT,"Unexpected getTransactionKind get empty");let we=H.kind==="ProgrammableTransaction"?H:void 0;for(let R of h){let ce=[R.module,R.function].join(m);if(!u.has(ce))continue;let K=await i.coder.decodeFunctionPayload(R,we?.inputs||[]);await e(K,C)}}return C.stopAndGetResult()},"handler"),filters:s,fetchConfig:o}),this}onEvent(e,t){return this.onMoveEvent(e,{type:""},t),this}onTransactionBlock(e,t,r){let s=N.fromPartial({...V,...r}),o=this;return this.callHandlers.push({handlerName:T(),handler:a(async function(i){if(!i.transaction)throw new p.ServerError(p.Status.INVALID_ARGUMENT,"transaction is null");let u=i.transaction,c=new b(o.moduleName,o.config.network,o.config.address,i.timestamp||new Date(0),i.slot,u,0,o.config.baseLabels);return u&&await e(u,c),c.stopAndGetResult()},"handler"),filters:[{...t,function:""}],fetchConfig:s}),this}onObjectChange(e,t){if(this.config.network===g.TEST_NET)throw new p.ServerError(p.Status.INVALID_ARGUMENT,"object change not supported in testnet");let r=this;return this.objectChangeHandlers.push({handlerName:T(),handler:a(async function(s){let o=new k(r.config.network,r.config.address,s.timestamp||new Date(0),s.slot,s.txDigest,r.config.baseLabels);return await e(s.changes,o),o.stopAndGetResult()},"handler"),type:t}),this}},fe=class n extends G{static{a(this,"SuiModulesProcessor")}static bind(e){return new n(w,e)}},he=class n extends G{static{a(this,"SuiGlobalProcessor")}static bind(e){return new n(w,{...e,address:w})}onTransactionBlock(e,t,r){return super.onTransactionBlock(e,t,r)}onObjectChange(e,t){return super.onObjectChange(e,t)}};import("node:process").then(n=>n.stdout.write(""));import{ListStateStorage as We}from"@sentio/runtime";var E=B(Q(),1);var be={owned:!1},y=class n extends We{static{a(this,"SuiAccountProcessorState")}static INSTANCE=new n},se=class{static{a(this,"SuiBaseObjectOrAddressProcessor")}config;ownerType;templateId;objectHandlers=[];objectChangeHandlers=[];constructor(e){return e.ownerType===A.TYPE?this.config={startCheckpoint:e.startCheckpoint||0n,address:e.address==="*"?"*":z(e.address),network:e.network||g.MAIN_NET,baseLabels:e.baseLabels}:this.config=me(e),this.ownerType=e.ownerType,y.INSTANCE.addValue(this),ee(this)}getChainId(){return this.config.network}onInterval(e,t,r,s,o){let i=this;return this.objectHandlers.push({handlerName:T(),handler:a(async function(u){let c=new re(i.config.network,u.objectId,u.objectVersion,u.slot,u.timestamp||new Date(0),i.config.baseLabels);return await i.doHandle(e,u,c),c.stopAndGetResult()},"handler"),timeIntervalInMinutes:t,checkPointInterval:r,type:s,fetchConfig:{...be,...o}}),this}},$=class extends se{static{a(this,"SuiBaseObjectOrAddressProcessorInternal")}onTimeInterval(e,t=60,r=240,s,o){return this.onInterval(e,{recentInterval:t,backfillInterval:r},void 0,s,o)}onCheckpointInterval(e,t=1e5,r=4e5,s,o){return this.onInterval(e,void 0,{recentInterval:t,backfillInterval:r},s,o)}},x=class n extends ${static{a(this,"SuiAddressProcessor")}callHandlers=[];static bind(e){return new n({...e,ownerType:A.ADDRESS})}async doHandle(e,t,r){return e(t.objects,r)}onTransactionBlock(e,t,r){let s=N.fromPartial({...V,...r}),o={fromAndToAddress:{from:"",to:this.config.address},...t},i=this;return this.callHandlers.push({handlerName:T(),handler:a(async function(u){if(!u.transaction)throw new E.ServerError(E.Status.INVALID_ARGUMENT,"transaction is null");let c=u.transaction,d=new b("object",i.config.network,i.config.address,u.timestamp||new Date(0),u.slot,c,0,i.config.baseLabels);return c&&await e(c,d),d.stopAndGetResult()},"handler"),filters:[{...o,function:""}],fetchConfig:s}),this}},J=class n extends ${static{a(this,"SuiObjectProcessor")}static bind(e){return new n({address:e.objectId,network:e.network,startCheckpoint:e.startCheckpoint,ownerType:A.OBJECT,baseLabels:e.baseLabels})}async doHandle(e,t,r){if(!t.self){console.log(`Sui object not existed in ${r.checkpoint}, please specific a start time`);return}return e(t.self,t.objects,r)}},ge=class n extends se{static{a(this,"SuiObjectTypeProcessor")}objectType;static bind(e){let t=new n({address:w,network:e.network,startCheckpoint:e.startCheckpoint,ownerType:A.TYPE,baseLabels:e.baseLabels});return t.objectType=e.objectType,t}async doHandle(e,t,r){if(!t.self){console.log(`Sui object not existed in ${r.checkpoint}, please specific a start time`);return}let s=await r.coder.filterAndDecodeObjects(this.objectType,[t.self]);return e(s[0],t.objects,r)}onObjectChange(e){if(this.config.network===g.TEST_NET)throw new E.ServerError(E.Status.INVALID_ARGUMENT,"object change not supported in testnet");let t=this;return this.objectChangeHandlers.push({handlerName:T(),handler:a(async function(r){let s=new k(t.config.network,t.config.address,r.timestamp||new Date(0),r.slot,r.txDigest,t.config.baseLabels);return await e(r.changes,s),s.stopAndGetResult()},"handler"),type:this.objectType.qname}),this}onTimeInterval(e,t=60,r=240,s){return this.onInterval(e,{recentInterval:t,backfillInterval:r},void 0,this.objectType.qname,s)}onCheckpointInterval(e,t=1e5,r=4e5,s){return this.onInterval(e,void 0,{recentInterval:t,backfillInterval:r},this.objectType.qname,s)}},q=class n extends ${static{a(this,"SuiWrappedObjectProcessor")}static bind(e){return new n({address:e.objectId,network:e.network,startCheckpoint:e.startCheckpoint,ownerType:A.WRAPPED_OBJECT,baseLabels:e.baseLabels})}async doHandle(e,t,r){return e(t.objects,r)}};import("node:process").then(n=>n.stdout.write(""));import{ListStateStorage as Ke}from"@sentio/runtime";var S=B(Q(),1);var D=class n extends Ke{static{a(this,"SuiAccountProcessorTemplateState")}static INSTANCE=new n},W=class{static{a(this,"SuiObjectOrAddressProcessorTemplate")}id;objectHandlers=[];binds=new Set;constructor(){this.id=D.INSTANCE.getValues().length,D.INSTANCE.addValue(this)}bind(e,t){e.network=e.network||t.network,e.startCheckpoint=e.startCheckpoint||t.checkpoint;let r=e.objectId||e.address;if(r==="*")throw new S.ServerError(S.Status.INVALID_ARGUMENT,"can't bind template instance with *");r=F(r);let s=[e.network,r].join("_");if(this.binds.has(s)){console.log(`Same object id can be bind to one template only once, ignore duplicate bind: ${s}`);return}this.binds.add(s);let o=this.createProcessor(e);for(let u of this.objectHandlers)o.onInterval(u.handler,u.timeIntervalInMinutes,u.checkpointInterval,u.type,u.fetchConfig);let i=o.config;t.update({states:{configUpdated:!0}}),Z.INSTANCE.addValue({templateId:this.id,contract:{name:"",chainId:i.network,address:i.address,abi:""},startBlock:i.startCheckpoint,endBlock:0n,baseLabels:i.baseLabels}),console.log(`successfully bind template ${s}`)}unbind(e,t){e.network=e.network||t.network,e.startCheckpoint=e.startCheckpoint||t.checkpoint;let r=e.objectId||e.address;if(r==="*")throw new S.ServerError(S.Status.INVALID_ARGUMENT,"can't delete template instance bind with *");r=F(r);let s=[e.network,r].join("_");if(!this.binds.has(s)){console.log(`the template instance ${s} not existed or already unbind`);return}this.binds.delete(s);let o=0,i=Z.INSTANCE.unregister();for(let c of i){if(c.contract?.chainId===e.network&&c.contract.address==r){o++;continue}Z.INSTANCE.addValue(c)}if(o!==1)throw new S.ServerError(S.Status.INVALID_ARGUMENT,`Failed to delete template instance ${s}, deleted ${o} times`);let u=y.INSTANCE.unregister();o=0;for(let c of u){if(c.templateId===this.id&&c.config.network==e.network&&c.config.address===r){o++;continue}y.INSTANCE.addValue(c)}if(o!==1)throw new S.ServerError(S.Status.INVALID_ARGUMENT,`Failed to delete processor for template ${this.id}, ${s}. deleted ${o} times`);console.log(`successfully unbind template ${s}`),t.update({states:{configUpdated:!0}})}onInterval(e,t,r,s,o){return this.objectHandlers.push({handler:e,timeIntervalInMinutes:t,checkpointInterval:r,type:s,fetchConfig:{...be,...o}}),this}onTimeInterval(e,t=60,r=240,s,o){return this.onInterval(e,{recentInterval:t,backfillInterval:r},void 0,s,o)}onCheckpointInterval(e,t=1e5,r=4e5,s,o){return this.onInterval(e,void 0,{recentInterval:t,backfillInterval:r},s,o)}};var Se=class extends W{static{a(this,"SuiAddressProcessorTemplate")}handlers=[];createProcessor(e){let t=x.bind(e);for(let r of this.handlers)t.onTransactionBlock(r.handler,r.filter,r.fetchConfig);return t.templateId=this.id,t}onTransactionBlock(e,t,r){return this.handlers.push({handler:e,filter:t,fetchConfig:r}),this}},Ce=class extends W{static{a(this,"SuiObjectProcessorTemplate")}createProcessor(e){let t=J.bind(e);return t.templateId=this.id,t}},Oe=class extends W{static{a(this,"SuiWrappedObjectProcessorTemplate")}createProcessor(e){let t=q.bind(e);return t.templateId=this.id,t}};import("node:process").then(n=>n.stdout.write(""));import("node:process").then(n=>n.stdout.write(""));import{errorString as oe,mergeProcessResults as ie,Plugin as Ye,PluginManager as Qe,USER_PROCESSOR as Ze}from"@sentio/runtime";var l=B(Q(),1);var Te=B(_e(),1);var ae=class extends Ye{static{a(this,"SuiPlugin")}name="SuiPlugin";handlers={suiCallHandlers:[],suiEventHandlers:[],suiObjectHandlers:[],suiObjectChangeHandlers:[]};async start(e){await ke(),console.log("total instances:",e.templateInstances.length);let t=new Set(Object.values(Te.SuiChainId));for(let r of e.templateInstances){if(!t.has(r.contract?.chainId||""))continue;console.log("start template instance",r.templateId),D.INSTANCE.getValues()[r.templateId].bind({address:r.contract?.address||"",objectId:r.contract?.address||"",network:r.contract?.chainId||g.MAIN_NET,startCheckpoint:r.startBlock||0n,baseLabels:r.baseLabels},ze)}}async configure(e){let t={suiCallHandlers:[],suiEventHandlers:[],suiObjectHandlers:[],suiObjectChangeHandlers:[]};for(let r of U.INSTANCE.getValues()){let s=ve.fromPartial({transactionConfig:[],processorType:Ze,contract:{name:r.moduleName,chainId:r.config.network,address:r.config.address,abi:""},startBlock:r.config.startCheckpoint});for(let o of r.eventHandlers){let i=t.suiEventHandlers.push(o.handler)-1,u={filters:o.filters.map(c=>({type:c.type,account:c.account||""})),fetchConfig:o.fetchConfig,handlerId:i,handlerName:o.handlerName};s.moveEventConfigs.push(u)}for(let o of r.callHandlers){let i=t.suiCallHandlers.push(o.handler)-1,u={filters:o.filters.map(c=>({function:c.function,typeArguments:c.typeArguments||[],withTypeArguments:!!c.typeArguments,includeFailed:c.includeFailed||!1,publicKeyPrefix:c.publicKeyPrefix||"",fromAndToAddress:c.fromAndToAddress})),fetchConfig:o.fetchConfig,handlerId:i,handlerName:o.handlerName};s.moveCallConfigs.push(u)}for(let o of r.objectChangeHandlers){let i=t.suiObjectChangeHandlers.push(o.handler)-1,u={type:o.type,handlerId:i,handlerName:o.handlerName};s.moveResourceChangeConfigs.push(u)}e.contractConfigs.push(s)}for(let r of y.INSTANCE.getValues()){let s=ye.fromPartial({address:r.config.address,chainId:r.getChainId(),startBlock:r.config.startCheckpoint});for(let o of r.objectChangeHandlers){let i=t.suiObjectChangeHandlers.push(o.handler)-1,u={type:o.type,handlerId:i,handlerName:o.handlerName};s.moveResourceChangeConfigs.push(u)}for(let o of r.objectHandlers){let i=t.suiObjectHandlers.push(o.handler)-1;s.moveIntervalConfigs.push({intervalConfig:{handlerId:i,handlerName:o.handlerName,minutes:0,minutesInterval:o.timeIntervalInMinutes,slot:0,slotInterval:o.checkPointInterval,fetchConfig:void 0},type:o.type||"",ownerType:r.ownerType,resourceFetchConfig:o.fetchConfig,fetchConfig:void 0})}if(r instanceof x)for(let o of r.callHandlers){let i=t.suiCallHandlers.push(o.handler)-1,u={filters:o.filters.map(c=>({function:c.function,typeArguments:c.typeArguments||[],withTypeArguments:!!c.typeArguments,includeFailed:c.includeFailed||!1,publicKeyPrefix:c.publicKeyPrefix||"",fromAndToAddress:c.fromAndToAddress})),fetchConfig:o.fetchConfig,handlerId:i,handlerName:o.handlerName};s.moveCallConfigs.push(u)}e.accountConfigs.push(s)}this.handlers=t}async processSuiEvent(e){if(!e.data?.suiEvent)throw new l.ServerError(l.Status.INVALID_ARGUMENT,"Event can't be empty");let t=[],r=e.data.suiEvent;for(let s of e.handlerIds)t.push(this.handlers.suiEventHandlers[s](r).catch(o=>{throw new l.ServerError(l.Status.INTERNAL,"error processing event: "+JSON.stringify(r)+`
2
+ import{a as Ne,b as Me,c as L,e as Pe,f as g,g as M,i as ke}from"./chunk-TWWTSJR3.js";import{a as T,b as ee}from"./chunk-4WNGQ3EZ.js";import{D as de,E as Ae,a as m,d as z,f as F,i as Ie,m as I,n as _,o as ue,u as je,v as xe,w as X}from"./chunk-YSEOUYZV.js";import{a as _e}from"./chunk-IVMOWPFA.js";import{B as O,Dd as Y,Td as Q,U as ve,da as ye,se as Z,ue as w,v as A,xa as N}from"./chunk-M4IWP4I2.js";import{a,f as B}from"./chunk-G5BIPHMS.js";import{ListStateStorage as Je,mergeProcessResults as qe}from"@sentio/runtime";var p=B(Q(),1);var Xe="0x0000000000000000000000000000000000000000000000000000000000000000";function f(n){return typeof n!="object"||n==null?!1:n.$kind==="GasCoin"||n.$kind==="Result"||n.$kind==="NestedResult"||n.$kind==="Input"}a(f,"isTransactionArgument");function tt(n,e){return f(n)?n:e.object(n)}a(tt,"transactionArgumentOrObject");function nt(n,e){return f(n)?n:typeof n=="string"?e.pure.string(n):e.pure.u64(n)}a(nt,"transactionArgumentOrPure");function rt(n,e){return f(n)?n:e.pure.address(n)}a(rt,"transactionArgumentOrPureAddress");function st(n,e){return f(n)?n:e.pure.u8(n)}a(st,"transactionArgumentOrPureU8");function ot(n,e){return f(n)?n:e.pure.u16(n)}a(ot,"transactionArgumentOrPureU16");function it(n,e){return f(n)?n:e.pure.u32(n)}a(it,"transactionArgumentOrPureU32");function at(n,e){return f(n)?n:e.pure.u64(n)}a(at,"transactionArgumentOrPureU64");function ct(n,e){return f(n)?n:e.pure.u128(n)}a(ct,"transactionArgumentOrPureU128");function ut(n,e){return f(n)?n:e.pure.u256(n)}a(ut,"transactionArgumentOrPureU256");function dt(n,e){return f(n)?n:e.pure.bool(n)}a(dt,"transactionArgumentOrPureBool");function lt(n,e){return f(n)?n:e.makeMoveVec({elements:n.map(t=>e.object(t))})}a(lt,"transactionArgumentOrVec");function te(n){return{address:n.address,exposedFunctions:Object.entries(n.exposedFunctions).map(([e,t])=>Le(e,t)),name:n.name,structs:Object.entries(n.structs).map(([e,t])=>Ve(e,t))}}a(te,"toInternalModule");function Le(n,e){let t;switch(e.visibility){case"Private":t=X.PRIVATE;break;case"Public":t=X.PUBLIC;break;case"Friend":t=X.FRIEND;break;default:throw Error("No visibility for function"+n)}return{typeParams:e.typeParameters.map(r=>({constraints:r.abilities})),isEntry:e.isEntry,name:n,params:e.parameters.map(j),return:e.return.map(j),visibility:t}}a(Le,"toInternalFunction");function Ve(n,e){return{abilities:e.abilities.abilities,fields:e.fields.map(Ue),typeParams:e.typeParameters.map(t=>({constraints:t.constraints.abilities})),isNative:!1,isEvent:!1,name:n}}a(Ve,"toInternalStruct");function Ue(n){return{name:n.name,type:j(n.type)}}a(Ue,"toInternalField");function j(n){if(typeof n=="string")return new I(n);if("Struct"in n){let e=[n.Struct.address,n.Struct.module,n.Struct.name].join(m),t=n.Struct.typeArguments.map(j);return new I(e,t)}if("Vector"in n)return new I("Vector",[j(n.Vector)]);if("TypeParameter"in n)return new I("T"+n.TypeParameter);if("Reference"in n){let e=j(n.Reference);return e.reference=!0,e}if("MutableReference"in n){let e=j(n.MutableReference);return e.reference=!0,e.mutable=!0,e}throw new Error("Unexpected sui type")}a(j,"toTypeDescriptor");var ne=class extends je{static{a(this,"SuiChainAdapter")}async getChainId(){return this.client.getChainIdentifier()}client;constructor(e){super(),this.client=e}async fetchModule(e,t){return await this.client.getNormalizedMoveModule({package:e,module:t})}async fetchModules(e){let t=await this.client.getNormalizedMoveModulesByPackage({package:e});return Object.values(t)}getMeaningfulFunctionParams(e){return e}toInternalModules(e){return Object.values(e).map(te)}getAllEventStructs(e){let t=new Map;for(let r of e){let s=Ie(r);for(let o of r.structs){let i=new Set(o.abilities);i.has("Drop")&&i.has("Copy")&&t.set(s+m+o.name,o)}}return t}getType(e){return e.type}getData(e){if(e===void 0)throw Error("val is undefined");return"parsedJson"in e?e.parsedJson:e.dataType==="moveObject"||"fields"in e&&"type"in e&&Object.keys(e).length===2?e.fields:e}};var v=class extends xe{static{a(this,"MoveCoder")}constructor(e){super(new ne(e))}load(e,t){let r=this.moduleMapping.get(e.address+"::"+e.name),s=this.moduleMapping.get(t+"::"+e.name);return r&&s||(r=te(e),this.loadInternal(r,t)),r}async decode(e,t){switch(t.qname){case"0x1::ascii::Char":if(e!==void 0&&typeof e!="string"){let s=(await super.decode(e,t)).byte;return String.fromCharCode(s)}case"0x1::ascii::String":if(e!==void 0&&typeof e!="string"){let s=(await super.decode(e,t)).bytes;return new TextDecoder().decode(new Uint8Array(s))}case"0x2::object::ID":if(e!==void 0&&typeof e!="string"){let s=(await super.decode(e,t)).bytes;return Me(s)}case"0x2::url::Url":if(e!==void 0&&typeof e!="string")return(await super.decode(e,t)).url;case"0x2::coin::Coin":if(e!==void 0&&typeof e!="string"){let s=(await super.decode(e,t)).id.id.bytes;return new TextDecoder().decode(new Uint8Array(s))}return e;case"0x2::balance::Balance":return e.value?(await super.decode(e,t)).value:BigInt(e);case"0x1::option::Option":if(e===null)return e;if(e.vec){let s=await super.decode(e,t);return s=s.vec,s.length===0?null:s[0]}return this.decode(e,t.typeArgs[0]);case"Address":return Ne(e);case"0x1::string::String":if(typeof e!="string")return new TextDecoder().decode(new Uint8Array(e.bytes));default:return super.decode(e,t)}}decodeEvent(e){return this.decodedStruct(e)}filterAndDecodeEvents(e,t){return typeof e=="string"&&(e=_(e)),this.filterAndDecodeStruct(e,t)}async getDynamicFields(e,t=ue,r=ue){let s=new I("0x2::dynamic_field::Field");return s.typeArgs=[t,r],(await this.filterAndDecodeObjects(s,e)).map(i=>i.data_decoded)}filterAndDecodeObjects(e,t){return this.filterAndDecodeStruct(e,t)}async decodeFunctionPayload(e,t){let r=[e.package,e.module,e.function].join(m),s=await this.getMoveFunction(r),o=this.adapter.getMeaningfulFunctionParams(s.params),i=[];for(let c of e.arguments||[]){let d=c;if("Input"in d){let C=d.Input,h=t[C];h.type==="pure"?i.push(h.value):(h.type==="object"||console.error("unexpected function arg value"),i.push(void 0))}else i.push(void 0)}let u=await this.decodeArray(i,o,!1);return{...e,arguments_decoded:u}}bcsRegistered=new Set;bcsRegistry=new Map;async getBCSTypeWithArgs(e,t=[]){let r=e.qname,s=e.getNormalizedSignature(),o=this.bcsRegistry.get(s);if(o)return o;let i=r.toLowerCase();switch(i){case"u8":case"u16":case"u32":case"u64":case"u128":case"u256":case"bool":return L[i]();case"address":return L.Address;case"vector":return L.vector(t[0]);default:if(!r.includes("::"))throw`Unimplemented builtin type ${r}`}let u;try{u=await this.getMoveStruct(r)}catch(d){throw console.error("Invalid move address",r),d}let c={};for(let d of u.fields)if(d.type.qname.startsWith("T")&&t.length){let C=+d.type.qname.slice(1);c[d.name]=t[C]}else d.type.typeArgs.length&&t.length?c[d.name]=await this.getBCSTypeWithArgs(d.type,t):c[d.name]=await this.getBCSType(d.type);return L.struct(r,c)}async getBCSType(e){let t=await Promise.all(e.typeArgs.map(s=>this.getBCSType(s))),r=await this.getBCSTypeWithArgs(e,t);return this.bcsRegistry.set(e.getNormalizedSignature(),r),r}async registerBCSTypes(e){let t=e.getNormalizedSignature();if(this.bcsRegistered.has(t))return;this.bcsRegistered.add(t);let r=await this.getBCSType(e);this.bcsRegistry.set(e.getNormalizedSignature(),r)}async decodeBCS(e,t,r){if(await this.registerBCSTypes(e),typeof t=="string"){let o=Buffer.from(t,r);t=new Uint8Array(o,o.byteOffset,o.byteLength)}return this.bcsRegistry.get(e.getNormalizedSignature())?.parse(t)}async decodeDevInspectResult(e){let t=[];if(e.results!=null)for(let r of e.results)if(r.returnValues)for(let s of r.returnValues){let o=_(s[1]),i=await this.decodeBCS(o,new Uint8Array(s[0])),u=await this.decodeType(i,o);t.push(u)}else t.push(null);return{...e,results_decoded:t}}},Ge="https://fullnode.mainnet.sui.io/",Ee=new Map;function He(n=Ge){let e=Ee.get(n);return e||(e=new v(new Pe({url:n})),Ee.set(n,e)),e}a(He,"defaultMoveCoder");var De=new Map,le;async function $e(n){let e=De.get(n);if(!e){e=new v(n);let t=await n.getChainIdentifier(),r=He();le||(le=await r.adapter.getChainId()),t===le&&(e=r),De.set(n,e)}return e}a($e,"getMoveCoder");var Re=new Map;function P(n=g.MAIN_NET){let e=Re.get(n);return e||(e=new v(M(n)),Re.set(n,e)),e}a(P,"defaultMoveCoder");import("node:process").then(n=>n.stdout.write(""));var b=class extends de{static{a(this,"SuiContext")}moduleName;timestamp;checkpoint;transaction;eventIndex;coder;constructor(e,t,r,s,o,i,u,c){super(c),this.address=r.toLowerCase(),this.network=t,this.moduleName=e,this.timestamp=s,this.checkpoint=o,this.eventIndex=u,this.coder=P(t),i&&(this.transaction=i)}getChainId(){return this.network}getTimestamp(){return this.timestamp.getDate()}getMetaDataInternal(e,t){return{address:this.address,contractName:this.moduleName,blockNumber:this.checkpoint,transactionIndex:0,transactionHash:this.transaction?.digest||"",logIndex:this.eventIndex,chainId:this.getChainId(),name:e,labels:Y(t)}}get client(){return M(this.network)}},k=class extends de{static{a(this,"SuiObjectChangeContext")}timestamp;checkpoint;coder;txDigest;constructor(e,t,r,s,o,i){super(i),this.address=t,this.network=e,this.timestamp=r,this.checkpoint=s,this.txDigest=o,this.coder=P(e)}getChainId(){return this.network}getTimestamp(){return this.timestamp.getDate()}getMetaDataInternal(e,t){return{address:this.address,contractName:"*",blockNumber:this.checkpoint,transactionIndex:-1,transactionHash:this.txDigest,logIndex:0,chainId:this.getChainId(),name:e,labels:Y(t)}}get client(){return M(this.network)}},pe=class extends Ae{static{a(this,"SuiAddressContext")}address;network;checkpoint;timestamp;coder;contractName="address";constructor(e,t,r,s,o){super(o),this.address=t,this.network=e,this.checkpoint=r,this.timestamp=s,this.coder=P(e)}getChainId(){return this.network}getMetaDataInternal(e,t){return{address:this.address,contractName:this.contractName,blockNumber:this.checkpoint,transactionIndex:0,transactionHash:"",logIndex:0,chainId:this.getChainId(),name:e,labels:Y(t)}}get client(){return M(this.network)}getTimestamp(){return this.timestamp.getDate()}},re=class extends pe{static{a(this,"SuiObjectContext")}contractName="object";objectId;objectVersion;constructor(e,t,r,s,o,i){super(e,t,s,o,i),this.objectId=t,this.objectVersion=r}};import("node:process").then(n=>n.stdout.write(""));function Be(n){let e=n.transaction?.data.transaction;if(!e)return[];let t=e.kind==="ProgrammableTransaction"?e:void 0;return t?t.transactions.flatMap(r=>{if("MoveCall"in r){let s=r.MoveCall;return s.package=z(s.package),[s]}return[]}):[]}a(Be,"getMoveCalls");import("node:process").then(n=>n.stdout.write(""));var V={resourceChanges:!1,allEvents:!1,inputs:!1};function me(n){return{startCheckpoint:n.startCheckpoint||0n,address:n.address===w?w:F(n.address),network:n.network||g.MAIN_NET,baseLabels:n.baseLabels}}a(me,"configure");var U=class n extends Je{static{a(this,"SuiProcessorState")}static INSTANCE=new n},G=class{static{a(this,"SuiBaseProcessor")}moduleName;config;eventHandlers=[];callHandlers=[];objectChangeHandlers=[];coder;constructor(e,t){return this.moduleName=e,this.config=me(t),U.INSTANCE.addValue(this),this.coder=P(this.config.network),ee(this)}getChainId(){return this.config.network}onMoveEvent(e,t,r){let s=[],o=N.fromPartial({...V,...r});Array.isArray(t)?s=t:s.push(t);let i=this,u=new Set(s.map(c=>c.type));return this.eventHandlers.push({handlerName:T(),handler:a(async function(c){if(!c.transaction)throw new p.ServerError(p.Status.INVALID_ARGUMENT,"event is null");let d=c.transaction;if(!d.events||!d.events.length)throw new p.ServerError(p.Status.INVALID_ARGUMENT,"no event in the transactions");let C=[];for(let h of d.events){let H=Number(h.id.eventSeq)||0,[we,R,ce]=_(h.type).qname.split(m);if(!u.has([R,ce].join(m)))continue;let K=new b(i.moduleName,i.config.network,i.config.address,c.timestamp||new Date(0),c.slot,d,H,i.config.baseLabels),Fe=await i.coder.decodeEvent(h);await e(Fe||h,K),C.push(K.stopAndGetResult())}return qe(C)},"handler"),filters:s,fetchConfig:o}),this}onEntryFunctionCall(e,t,r){let s=[],o=N.fromPartial({...V,...r});Array.isArray(t)?s=t:s.push(t);let i=this,u=new Set(s.map(c=>c.function));return this.callHandlers.push({handlerName:T(),handler:a(async function(c){if(!c.transaction)throw new p.ServerError(p.Status.INVALID_ARGUMENT,"call is null");let d=c.transaction,C=new b(i.moduleName,i.config.network,i.config.address,c.timestamp||new Date(0),c.slot,d,0,i.config.baseLabels);if(d){let h=Be(d),H=d.transaction?.data?.transaction;if(!H)throw new p.ServerError(p.Status.INVALID_ARGUMENT,"Unexpected getTransactionKind get empty");let we=H.kind==="ProgrammableTransaction"?H:void 0;for(let R of h){let ce=[R.module,R.function].join(m);if(!u.has(ce))continue;let K=await i.coder.decodeFunctionPayload(R,we?.inputs||[]);await e(K,C)}}return C.stopAndGetResult()},"handler"),filters:s,fetchConfig:o}),this}onEvent(e,t){return this.onMoveEvent(e,{type:""},t),this}onTransactionBlock(e,t,r){let s=N.fromPartial({...V,...r}),o=this;return this.callHandlers.push({handlerName:T(),handler:a(async function(i){if(!i.transaction)throw new p.ServerError(p.Status.INVALID_ARGUMENT,"transaction is null");let u=i.transaction,c=new b(o.moduleName,o.config.network,o.config.address,i.timestamp||new Date(0),i.slot,u,0,o.config.baseLabels);return u&&await e(u,c),c.stopAndGetResult()},"handler"),filters:[{...t,function:""}],fetchConfig:s}),this}onObjectChange(e,t){if(this.config.network===g.TEST_NET)throw new p.ServerError(p.Status.INVALID_ARGUMENT,"object change not supported in testnet");let r=this;return this.objectChangeHandlers.push({handlerName:T(),handler:a(async function(s){let o=new k(r.config.network,r.config.address,s.timestamp||new Date(0),s.slot,s.txDigest,r.config.baseLabels);return await e(s.changes,o),o.stopAndGetResult()},"handler"),type:t}),this}},fe=class n extends G{static{a(this,"SuiModulesProcessor")}static bind(e){return new n(w,e)}},he=class n extends G{static{a(this,"SuiGlobalProcessor")}static bind(e){return new n(w,{...e,address:w})}onTransactionBlock(e,t,r){return super.onTransactionBlock(e,t,r)}onObjectChange(e,t){return super.onObjectChange(e,t)}};import("node:process").then(n=>n.stdout.write(""));import{ListStateStorage as We}from"@sentio/runtime";var E=B(Q(),1);var be={owned:!1},y=class n extends We{static{a(this,"SuiAccountProcessorState")}static INSTANCE=new n},se=class{static{a(this,"SuiBaseObjectOrAddressProcessor")}config;ownerType;templateId;objectHandlers=[];objectChangeHandlers=[];constructor(e){return e.ownerType===A.TYPE?this.config={startCheckpoint:e.startCheckpoint||0n,address:e.address==="*"?"*":z(e.address),network:e.network||g.MAIN_NET,baseLabels:e.baseLabels}:this.config=me(e),this.ownerType=e.ownerType,y.INSTANCE.addValue(this),ee(this)}getChainId(){return this.config.network}onInterval(e,t,r,s,o){let i=this;return this.objectHandlers.push({handlerName:T(),handler:a(async function(u){let c=new re(i.config.network,u.objectId,u.objectVersion,u.slot,u.timestamp||new Date(0),i.config.baseLabels);return await i.doHandle(e,u,c),c.stopAndGetResult()},"handler"),timeIntervalInMinutes:t,checkPointInterval:r,type:s,fetchConfig:{...be,...o}}),this}},$=class extends se{static{a(this,"SuiBaseObjectOrAddressProcessorInternal")}onTimeInterval(e,t=60,r=240,s,o){return this.onInterval(e,{recentInterval:t,backfillInterval:r},void 0,s,o)}onCheckpointInterval(e,t=1e5,r=4e5,s,o){return this.onInterval(e,void 0,{recentInterval:t,backfillInterval:r},s,o)}},x=class n extends ${static{a(this,"SuiAddressProcessor")}callHandlers=[];static bind(e){return new n({...e,ownerType:A.ADDRESS})}async doHandle(e,t,r){return e(t.objects,r)}onTransactionBlock(e,t,r){let s=N.fromPartial({...V,...r}),o={fromAndToAddress:{from:"",to:this.config.address},...t},i=this;return this.callHandlers.push({handlerName:T(),handler:a(async function(u){if(!u.transaction)throw new E.ServerError(E.Status.INVALID_ARGUMENT,"transaction is null");let c=u.transaction,d=new b("object",i.config.network,i.config.address,u.timestamp||new Date(0),u.slot,c,0,i.config.baseLabels);return c&&await e(c,d),d.stopAndGetResult()},"handler"),filters:[{...o,function:""}],fetchConfig:s}),this}},J=class n extends ${static{a(this,"SuiObjectProcessor")}static bind(e){return new n({address:e.objectId,network:e.network,startCheckpoint:e.startCheckpoint,ownerType:A.OBJECT,baseLabels:e.baseLabels})}async doHandle(e,t,r){if(!t.self){console.log(`Sui object not existed in ${r.checkpoint}, please specific a start time`);return}return e(t.self,t.objects,r)}},ge=class n extends se{static{a(this,"SuiObjectTypeProcessor")}objectType;static bind(e){let t=new n({address:w,network:e.network,startCheckpoint:e.startCheckpoint,ownerType:A.TYPE,baseLabels:e.baseLabels});return t.objectType=e.objectType,t}async doHandle(e,t,r){if(!t.self){console.log(`Sui object not existed in ${r.checkpoint}, please specific a start time`);return}let s=await r.coder.filterAndDecodeObjects(this.objectType,[t.self]);return e(s[0],t.objects,r)}onObjectChange(e){if(this.config.network===g.TEST_NET)throw new E.ServerError(E.Status.INVALID_ARGUMENT,"object change not supported in testnet");let t=this;return this.objectChangeHandlers.push({handlerName:T(),handler:a(async function(r){let s=new k(t.config.network,t.config.address,r.timestamp||new Date(0),r.slot,r.txDigest,t.config.baseLabels);return await e(r.changes,s),s.stopAndGetResult()},"handler"),type:this.objectType.qname}),this}onTimeInterval(e,t=60,r=240,s){return this.onInterval(e,{recentInterval:t,backfillInterval:r},void 0,this.objectType.qname,s)}onCheckpointInterval(e,t=1e5,r=4e5,s){return this.onInterval(e,void 0,{recentInterval:t,backfillInterval:r},this.objectType.qname,s)}},q=class n extends ${static{a(this,"SuiWrappedObjectProcessor")}static bind(e){return new n({address:e.objectId,network:e.network,startCheckpoint:e.startCheckpoint,ownerType:A.WRAPPED_OBJECT,baseLabels:e.baseLabels})}async doHandle(e,t,r){return e(t.objects,r)}};import("node:process").then(n=>n.stdout.write(""));import{ListStateStorage as Ke}from"@sentio/runtime";var S=B(Q(),1);var D=class n extends Ke{static{a(this,"SuiAccountProcessorTemplateState")}static INSTANCE=new n},W=class{static{a(this,"SuiObjectOrAddressProcessorTemplate")}id;objectHandlers=[];binds=new Set;constructor(){this.id=D.INSTANCE.getValues().length,D.INSTANCE.addValue(this)}bind(e,t){e.network=e.network||t.network,e.startCheckpoint=e.startCheckpoint||t.checkpoint;let r=e.objectId||e.address;if(r==="*")throw new S.ServerError(S.Status.INVALID_ARGUMENT,"can't bind template instance with *");r=F(r);let s=[e.network,r].join("_");if(this.binds.has(s)){console.log(`Same object id can be bind to one template only once, ignore duplicate bind: ${s}`);return}this.binds.add(s);let o=this.createProcessor(e);for(let u of this.objectHandlers)o.onInterval(u.handler,u.timeIntervalInMinutes,u.checkpointInterval,u.type,u.fetchConfig);let i=o.config;t.update({states:{configUpdated:!0}}),Z.INSTANCE.addValue({templateId:this.id,contract:{name:"",chainId:i.network,address:i.address,abi:""},startBlock:i.startCheckpoint,endBlock:0n,baseLabels:i.baseLabels}),console.log(`successfully bind template ${s}`)}unbind(e,t){e.network=e.network||t.network,e.startCheckpoint=e.startCheckpoint||t.checkpoint;let r=e.objectId||e.address;if(r==="*")throw new S.ServerError(S.Status.INVALID_ARGUMENT,"can't delete template instance bind with *");r=F(r);let s=[e.network,r].join("_");if(!this.binds.has(s)){console.log(`the template instance ${s} not existed or already unbind`);return}this.binds.delete(s);let o=0,i=Z.INSTANCE.unregister();for(let c of i){if(c.contract?.chainId===e.network&&c.contract.address==r){o++;continue}Z.INSTANCE.addValue(c)}if(o!==1)throw new S.ServerError(S.Status.INVALID_ARGUMENT,`Failed to delete template instance ${s}, deleted ${o} times`);let u=y.INSTANCE.unregister();o=0;for(let c of u){if(c.templateId===this.id&&c.config.network==e.network&&c.config.address===r){o++;continue}y.INSTANCE.addValue(c)}if(o!==1)throw new S.ServerError(S.Status.INVALID_ARGUMENT,`Failed to delete processor for template ${this.id}, ${s}. deleted ${o} times`);console.log(`successfully unbind template ${s}`),t.update({states:{configUpdated:!0}})}onInterval(e,t,r,s,o){return this.objectHandlers.push({handler:e,timeIntervalInMinutes:t,checkpointInterval:r,type:s,fetchConfig:{...be,...o}}),this}onTimeInterval(e,t=60,r=240,s,o){return this.onInterval(e,{recentInterval:t,backfillInterval:r},void 0,s,o)}onCheckpointInterval(e,t=1e5,r=4e5,s,o){return this.onInterval(e,void 0,{recentInterval:t,backfillInterval:r},s,o)}};var Se=class extends W{static{a(this,"SuiAddressProcessorTemplate")}handlers=[];createProcessor(e){let t=x.bind(e);for(let r of this.handlers)t.onTransactionBlock(r.handler,r.filter,r.fetchConfig);return t.templateId=this.id,t}onTransactionBlock(e,t,r){return this.handlers.push({handler:e,filter:t,fetchConfig:r}),this}},Ce=class extends W{static{a(this,"SuiObjectProcessorTemplate")}createProcessor(e){let t=J.bind(e);return t.templateId=this.id,t}},Oe=class extends W{static{a(this,"SuiWrappedObjectProcessorTemplate")}createProcessor(e){let t=q.bind(e);return t.templateId=this.id,t}};import("node:process").then(n=>n.stdout.write(""));import("node:process").then(n=>n.stdout.write(""));import{errorString as oe,mergeProcessResults as ie,Plugin as Ye,PluginManager as Qe,USER_PROCESSOR as Ze}from"@sentio/runtime";var l=B(Q(),1);var Te=B(_e(),1);var ae=class extends Ye{static{a(this,"SuiPlugin")}name="SuiPlugin";handlers={suiCallHandlers:[],suiEventHandlers:[],suiObjectHandlers:[],suiObjectChangeHandlers:[]};async start(e){await ke(),console.log("total instances:",e.templateInstances.length);let t=new Set(Object.values(Te.SuiChainId));for(let r of e.templateInstances){if(!t.has(r.contract?.chainId||""))continue;console.log("start template instance",r.templateId),D.INSTANCE.getValues()[r.templateId].bind({address:r.contract?.address||"",objectId:r.contract?.address||"",network:r.contract?.chainId||g.MAIN_NET,startCheckpoint:r.startBlock||0n,baseLabels:r.baseLabels},ze)}}async configure(e){let t={suiCallHandlers:[],suiEventHandlers:[],suiObjectHandlers:[],suiObjectChangeHandlers:[]};for(let r of U.INSTANCE.getValues()){let s=ve.fromPartial({transactionConfig:[],processorType:Ze,contract:{name:r.moduleName,chainId:r.config.network,address:r.config.address,abi:""},startBlock:r.config.startCheckpoint});for(let o of r.eventHandlers){let i=t.suiEventHandlers.push(o.handler)-1,u={filters:o.filters.map(c=>({type:c.type,account:c.account||""})),fetchConfig:o.fetchConfig,handlerId:i,handlerName:o.handlerName};s.moveEventConfigs.push(u)}for(let o of r.callHandlers){let i=t.suiCallHandlers.push(o.handler)-1,u={filters:o.filters.map(c=>({function:c.function,typeArguments:c.typeArguments||[],withTypeArguments:!!c.typeArguments,includeFailed:c.includeFailed||!1,publicKeyPrefix:c.publicKeyPrefix||"",fromAndToAddress:c.fromAndToAddress})),fetchConfig:o.fetchConfig,handlerId:i,handlerName:o.handlerName};s.moveCallConfigs.push(u)}for(let o of r.objectChangeHandlers){let i=t.suiObjectChangeHandlers.push(o.handler)-1,u={type:o.type,handlerId:i,handlerName:o.handlerName};s.moveResourceChangeConfigs.push(u)}e.contractConfigs.push(s)}for(let r of y.INSTANCE.getValues()){let s=ye.fromPartial({address:r.config.address,chainId:r.getChainId(),startBlock:r.config.startCheckpoint});for(let o of r.objectChangeHandlers){let i=t.suiObjectChangeHandlers.push(o.handler)-1,u={type:o.type,handlerId:i,handlerName:o.handlerName};s.moveResourceChangeConfigs.push(u)}for(let o of r.objectHandlers){let i=t.suiObjectHandlers.push(o.handler)-1;s.moveIntervalConfigs.push({intervalConfig:{handlerId:i,handlerName:o.handlerName,minutes:0,minutesInterval:o.timeIntervalInMinutes,slot:0,slotInterval:o.checkPointInterval,fetchConfig:void 0},type:o.type||"",ownerType:r.ownerType,resourceFetchConfig:o.fetchConfig,fetchConfig:void 0})}if(r instanceof x)for(let o of r.callHandlers){let i=t.suiCallHandlers.push(o.handler)-1,u={filters:o.filters.map(c=>({function:c.function,typeArguments:c.typeArguments||[],withTypeArguments:!!c.typeArguments,includeFailed:c.includeFailed||!1,publicKeyPrefix:c.publicKeyPrefix||"",fromAndToAddress:c.fromAndToAddress})),fetchConfig:o.fetchConfig,handlerId:i,handlerName:o.handlerName};s.moveCallConfigs.push(u)}e.accountConfigs.push(s)}this.handlers=t}async processSuiEvent(e){if(!e.data?.suiEvent)throw new l.ServerError(l.Status.INVALID_ARGUMENT,"Event can't be empty");let t=[],r=e.data.suiEvent;for(let s of e.handlerIds)t.push(this.handlers.suiEventHandlers[s](r).catch(o=>{throw new l.ServerError(l.Status.INTERNAL,"error processing event: "+JSON.stringify(r)+`
3
3
  `+oe(o))}));return ie(await Promise.all(t))}async processSuiFunctionCall(e){if(!e.data?.suiCall)throw new l.ServerError(l.Status.INVALID_ARGUMENT,"Call can't be empty");let t=e.data.suiCall,r=[];for(let s of e.handlerIds){let o=this.handlers.suiCallHandlers[s](t).catch(i=>{throw new l.ServerError(l.Status.INTERNAL,"error processing call: "+JSON.stringify(t)+`
4
4
  `+oe(i))});r.push(o)}return ie(await Promise.all(r))}async processSuiObject(e){if(!e.data?.suiObject)throw new l.ServerError(l.Status.INVALID_ARGUMENT,"Object can't be empty");let t=e.data.suiObject,r=[];for(let s of e.handlerIds)r.push(this.handlers.suiObjectHandlers[s](t).catch(o=>{throw new l.ServerError(l.Status.INTERNAL,"error processing object: "+JSON.stringify(t)+`
5
5
  `+oe(o))}));return ie(await Promise.all(r))}async processSuiObjectChange(e){if(!e.data?.suiObjectChange)throw new l.ServerError(l.Status.INVALID_ARGUMENT,"Object change can't be empty");let t=e.data.suiObjectChange,r=[];for(let s of e.handlerIds)r.push(this.handlers.suiObjectChangeHandlers[s](t).catch(o=>{throw new l.ServerError(l.Status.INTERNAL,"error processing object change: "+JSON.stringify(t)+`
6
6
  `+oe(o))}));return ie(await Promise.all(r))}supportedHandlers=[O.SUI_EVENT,O.SUI_CALL,O.SUI_OBJECT,O.SUI_OBJECT_CHANGE];processBinding(e){switch(e.handlerType){case O.SUI_EVENT:return this.processSuiEvent(e);case O.SUI_CALL:return this.processSuiFunctionCall(e);case O.SUI_OBJECT:return this.processSuiObject(e);case O.SUI_OBJECT_CHANGE:return this.processSuiObjectChange(e);default:throw new l.ServerError(l.Status.INVALID_ARGUMENT,"No handle type registered "+e.handlerType)}}};Qe.INSTANCE.register(new ae);var ze=new b("",Te.SuiChainId.SUI_MAINNET,"",new Date,0n,{},0,{});import("node:process").then(n=>n.stdout.write(""));import("node:process").then(n=>n.stdout.write(""));export{Xe as a,tt as b,nt as c,rt as d,st as e,ot as f,it as g,at as h,ct as i,ut as j,dt as k,lt as l,v as m,$e as n,P as o,b as p,k as q,pe as r,re as s,Be as t,G as u,fe as v,he as w,x,J as y,ge as z,q as A,Se as B,Ce as C,Oe as D,ae as E};
7
- //# sourceMappingURL=chunk-4GQKFZWS.js.map
7
+ //# sourceMappingURL=chunk-HYNPEPEK.js.map