@sentio/sdk-bundle 2.53.1 → 2.53.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/builtin/0x4.js +3 -0
- package/lib/aptos/builtin/0x4.js.map +1 -0
- package/lib/aptos/builtin/index.js +1 -1
- package/lib/aptos/builtin/index.js.map +1 -1
- package/lib/{chunk-LHGVTXBD.js → chunk-2LEC6F4V.js} +2 -2
- package/lib/chunk-43QOQ35O.js +3 -0
- package/lib/chunk-43QOQ35O.js.map +1 -0
- package/lib/{chunk-JHVQ6HK3.js → chunk-BV6WCIY7.js} +2 -2
- package/lib/{chunk-JHVQ6HK3.js.map → chunk-BV6WCIY7.js.map} +1 -1
- package/lib/{chunk-NQ6WJUYA.js → chunk-JBAOTXZI.js} +2 -2
- package/lib/{chunk-L7F5TU3N.js → chunk-VOA4VQWT.js} +2 -2
- package/lib/sui/builtin/0x1.js +1 -1
- package/lib/sui/builtin/0x2.js +1 -1
- package/lib/sui/builtin/0x3.js +1 -1
- package/lib/sui/builtin/index.js +1 -1
- package/lib/sui/index.js +1 -1
- package/lib/testing/index.js +1 -1
- package/package.json +3 -2
- /package/lib/{chunk-LHGVTXBD.js.map → chunk-2LEC6F4V.js.map} +0 -0
- /package/lib/{chunk-NQ6WJUYA.js.map → chunk-JBAOTXZI.js.map} +0 -0
- /package/lib/{chunk-L7F5TU3N.js.map → chunk-VOA4VQWT.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 xe,b as Ae,c as _,e as Me,f as g,g as M,i as Pe}from"./chunk-BIZ3C6X2.js";import{D as ce,E as je,a as m,d as Z,f as B,i as ve,m as I,n as F,o as ae,u as Ie,v as ye,w as z}from"./chunk-D3BOBS3X.js";import{a as Be}from"./chunk-FK3BI3F2.js";import{B as O,Sd as Q,U as Te,Ud as T,cd as K,da as we,rd as Y,v as x,xa as A}from"./chunk-D5X27FT5.js";import{a,f as H}from"./chunk-G5BIPHMS.js";import{ListStateStorage as Ge,mergeProcessResults as $e}from"@sentio/runtime";var p=H(Y(),1);var Ze="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 Xe(n,e){return f(n)?n:e.object(n)}a(Xe,"transactionArgumentOrObject");function et(n,e){return f(n)?n:typeof n=="string"?e.pure.string(n):e.pure.u64(n)}a(et,"transactionArgumentOrPure");function tt(n,e){return f(n)?n:e.pure.address(n)}a(tt,"transactionArgumentOrPureAddress");function nt(n,e){return f(n)?n:e.pure.u8(n)}a(nt,"transactionArgumentOrPureU8");function rt(n,e){return f(n)?n:e.pure.u16(n)}a(rt,"transactionArgumentOrPureU16");function st(n,e){return f(n)?n:e.pure.u32(n)}a(st,"transactionArgumentOrPureU32");function ot(n,e){return f(n)?n:e.pure.u64(n)}a(ot,"transactionArgumentOrPureU64");function it(n,e){return f(n)?n:e.pure.u128(n)}a(it,"transactionArgumentOrPureU128");function at(n,e){return f(n)?n:e.pure.u256(n)}a(at,"transactionArgumentOrPureU256");function ct(n,e){return f(n)?n:e.pure.bool(n)}a(ct,"transactionArgumentOrPureBool");function ut(n,e){return f(n)?n:e.makeMoveVec({elements:n.map(t=>e.object(t))})}a(ut,"transactionArgumentOrVec");function X(n){return{address:n.address,exposedFunctions:Object.entries(n.exposedFunctions).map(([e,t])=>Fe(e,t)),name:n.name,structs:Object.entries(n.structs).map(([e,t])=>_e(e,t))}}a(X,"toInternalModule");function Fe(n,e){let t;switch(e.visibility){case"Private":t=z.PRIVATE;break;case"Public":t=z.PUBLIC;break;case"Friend":t=z.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(y),return:e.return.map(y),visibility:t}}a(Fe,"toInternalFunction");function _e(n,e){return{abilities:e.abilities.abilities,fields:e.fields.map(Le),typeParams:e.typeParameters.map(t=>({constraints:t.constraints.abilities})),isNative:!1,isEvent:!1,name:n}}a(_e,"toInternalStruct");function Le(n){return{name:n.name,type:y(n.type)}}a(Le,"toInternalField");function y(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(y);return new I(e,t)}if("Vector"in n)return new I("Vector",[y(n.Vector)]);if("TypeParameter"in n)return new I("T"+n.TypeParameter);if("Reference"in n){let e=y(n.Reference);return e.reference=!0,e}if("MutableReference"in n){let e=y(n.MutableReference);return e.reference=!0,e.mutable=!0,e}throw new Error("Unexpected sui type")}a(y,"toTypeDescriptor");var ee=class extends Ie{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(X)}getAllEventStructs(e){let t=new Map;for(let r of e){let s=ve(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 w=class extends ye{static{a(this,"MoveCoder")}constructor(e){super(new ee(e))}load(e,t){let r=this.moduleMapping.get(e.address+"::"+e.name),s=this.moduleMapping.get(t+"::"+e.name);return r&&s||(r=X(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 Ae(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 xe(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=F(e)),this.filterAndDecodeStruct(e,t)}async getDynamicFields(e,t=ae,r=ae){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 _[i]();case"address":return _.Address;case"vector":return _.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 _.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=F(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}}},Ve="https://fullnode.mainnet.sui.io/",Ne=new Map;function Ee(n=Ve){let e=Ne.get(n);return e||(e=new w(new Me({url:n})),Ne.set(n,e)),e}a(Ee,"defaultMoveCoder");var ke=new Map,ue;async function Ue(n){let e=ke.get(n);if(!e){e=new w(n);let t=await n.getChainIdentifier(),r=Ee();ue||(ue=await r.adapter.getChainId()),t===ue&&(e=r),ke.set(n,e)}return e}a(Ue,"getMoveCoder");var De=new Map;function P(n=g.MAIN_NET){let e=De.get(n);return e||(e=new w(M(n)),De.set(n,e)),e}a(P,"defaultMoveCoder");import("node:process").then(n=>n.stdout.write(""));var b=class extends ce{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:K(t)}}get client(){return M(this.network)}},N=class extends ce{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:K(t)}}get client(){return M(this.network)}},de=class extends je{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:K(t)}}get client(){return M(this.network)}getTimestamp(){return this.timestamp.getDate()}},te=class extends de{static{a(this,"SuiObjectContext")}contractName="object";objectId;constructor(e,t,r,s,o,i){super(e,t,s,o,i),this.objectId=t}};import("node:process").then(n=>n.stdout.write(""));function Re(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(Re,"getMoveCalls");import("node:process").then(n=>n.stdout.write(""));var L={resourceChanges:!1,allEvents:!1,inputs:!1};function fe(n){return{startCheckpoint:n.startCheckpoint||0n,address:n.address===T?T:B(n.address),network:n.network||g.MAIN_NET,baseLabels:n.baseLabels}}a(fe,"configure");var V=class n extends Ge{static{a(this,"SuiProcessorState")}static INSTANCE=new n},U=class{static{a(this,"SuiBaseProcessor")}moduleName;config;eventHandlers=[];callHandlers=[];objectChangeHandlers=[];coder;constructor(e,t){this.moduleName=e,this.config=fe(t),V.INSTANCE.addValue(this),this.coder=P(this.config.network)}getChainId(){return this.config.network}onMoveEvent(e,t,r){let s=[],o=A.fromPartial({...L,...r});Array.isArray(t)?s=t:s.push(t);let i=this,u=new Set(s.map(c=>c.type));return this.eventHandlers.push({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 D=Number(h.id.eventSeq)||0,[Oe,R,ie]=F(h.type).qname.split(m);if(!u.has([R,ie].join(m)))continue;let W=new b(i.moduleName,i.config.network,i.config.address,c.timestamp||new Date(0),c.slot,d,D,i.config.baseLabels),He=await i.coder.decodeEvent(h);await e(He||h,W),C.push(W.stopAndGetResult())}return $e(C)},"handler"),filters:s,fetchConfig:o}),this}onEntryFunctionCall(e,t,r){let s=[],o=A.fromPartial({...L,...r});Array.isArray(t)?s=t:s.push(t);let i=this,u=new Set(s.map(c=>c.function));return this.callHandlers.push({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=Re(d),D=d.transaction?.data?.transaction;if(!D)throw new p.ServerError(p.Status.INVALID_ARGUMENT,"Unexpected getTransactionKind get empty");let Oe=D.kind==="ProgrammableTransaction"?D:void 0;for(let R of h){let ie=[R.module,R.function].join(m);if(!u.has(ie))continue;let W=await i.coder.decodeFunctionPayload(R,Oe?.inputs||[]);await e(W,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=A.fromPartial({...L,...r}),o=this;return this.callHandlers.push({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({handler:a(async function(s){let o=new N(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}},le=class n extends U{static{a(this,"SuiModulesProcessor")}static bind(e){return new n(T,e)}},pe=class n extends U{static{a(this,"SuiGlobalProcessor")}static bind(e){return new n(T,{...e,address:T})}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 Je}from"@sentio/runtime";var k=H(Y(),1);var me={owned:!1},v=class n extends Je{static{a(this,"SuiAccountProcessorState")}static INSTANCE=new n},ne=class{static{a(this,"SuiBaseObjectOrAddressProcessor")}config;ownerType;templateId;objectHandlers=[];objectChangeHandlers=[];constructor(e){e.ownerType===x.TYPE?this.config={startCheckpoint:e.startCheckpoint||0n,address:e.address==="*"?"*":Z(e.address),network:e.network||g.MAIN_NET,baseLabels:e.baseLabels}:this.config=fe(e),this.ownerType=e.ownerType,v.INSTANCE.addValue(this)}getChainId(){return this.config.network}onInterval(e,t,r,s,o){let i=this;return this.objectHandlers.push({handler:a(async function(u){let c=new te(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:{...me,...o}}),this}},G=class extends ne{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)}},j=class n extends G{static{a(this,"SuiAddressProcessor")}callHandlers=[];static bind(e){return new n({...e,ownerType:x.ADDRESS})}async doHandle(e,t,r){return e(t.objects,r)}onTransactionBlock(e,t,r){let s=A.fromPartial({...L,...r}),o={fromAndToAddress:{from:"",to:this.config.address},...t},i=this;return this.callHandlers.push({handler:a(async function(u){if(!u.transaction)throw new k.ServerError(k.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}},$=class n extends G{static{a(this,"SuiObjectProcessor")}static bind(e){return new n({address:e.objectId,network:e.network,startCheckpoint:e.startCheckpoint,ownerType:x.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)}},he=class n extends ne{static{a(this,"SuiObjectTypeProcessor")}objectType;static bind(e){let t=new n({address:T,network:e.network,startCheckpoint:e.startCheckpoint,ownerType:x.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 k.ServerError(k.Status.INVALID_ARGUMENT,"object change not supported in testnet");let t=this;return this.objectChangeHandlers.push({handler:a(async function(r){let s=new N(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)}},J=class n extends G{static{a(this,"SuiWrappedObjectProcessor")}static bind(e){return new n({address:e.objectId,network:e.network,startCheckpoint:e.startCheckpoint,ownerType:x.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 qe}from"@sentio/runtime";var S=H(Y(),1);var E=class n extends qe{static{a(this,"SuiAccountProcessorTemplateState")}static INSTANCE=new n},q=class{static{a(this,"SuiObjectOrAddressProcessorTemplate")}id;objectHandlers=[];binds=new Set;constructor(){this.id=E.INSTANCE.getValues().length,E.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=B(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}}),Q.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=B(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=Q.INSTANCE.unregister();for(let c of i){if(c.contract?.chainId===e.network&&c.contract.address==r){o++;continue}Q.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=v.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}v.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:{...me,...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 ge=class extends q{static{a(this,"SuiAddressProcessorTemplate")}handlers=[];createProcessor(e){let t=j.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}},be=class extends q{static{a(this,"SuiObjectProcessorTemplate")}createProcessor(e){let t=$.bind(e);return t.templateId=this.id,t}},Se=class extends q{static{a(this,"SuiWrappedObjectProcessorTemplate")}createProcessor(e){let t=J.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 re,mergeProcessResults as se,Plugin as We,PluginManager as Ke,USER_PROCESSOR as Ye}from"@sentio/runtime";var l=H(Y(),1);var Ce=H(Be(),1);var oe=class extends We{static{a(this,"SuiPlugin")}name="SuiPlugin";handlers={suiCallHandlers:[],suiEventHandlers:[],suiObjectHandlers:[],suiObjectChangeHandlers:[]};async start(e){await Pe(),console.log("total instances:",e.templateInstances.length);let t=new Set(Object.values(Ce.SuiChainId));for(let r of e.templateInstances){if(!t.has(r.contract?.chainId||""))continue;console.log("start template instance",r.templateId),E.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},Qe)}}async configure(e){let t={suiCallHandlers:[],suiEventHandlers:[],suiObjectHandlers:[],suiObjectChangeHandlers:[]};for(let r of V.INSTANCE.getValues()){let s=Te.fromPartial({transactionConfig:[],processorType:Ye,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};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};s.moveCallConfigs.push(u)}for(let o of r.objectChangeHandlers){let i=t.suiObjectChangeHandlers.push(o.handler)-1,u={type:o.type,handlerId:i};s.moveResourceChangeConfigs.push(u)}e.contractConfigs.push(s)}for(let r of v.INSTANCE.getValues()){let s=we.fromPartial({address:r.config.address,chainId:r.getChainId(),startBlock:r.config.startCheckpoint});for(let o of r.objectHandlers){let i=t.suiObjectHandlers.push(o.handler)-1;for(let u of r.objectChangeHandlers){let c=t.suiObjectChangeHandlers.push(u.handler)-1,d={type:u.type,handlerId:c};s.moveResourceChangeConfigs.push(d)}s.moveIntervalConfigs.push({intervalConfig:{handlerId:i,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 j)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};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 xe,b as Ae,c as _,e as Me,f as g,g as M,i as Pe}from"./chunk-BIZ3C6X2.js";import{D as ce,E as je,a as m,d as Z,f as B,i as ve,m as I,n as F,o as ae,u as Ie,v as ye,w as z}from"./chunk-D3BOBS3X.js";import{a as Be}from"./chunk-FK3BI3F2.js";import{B as O,Sd as Q,U as Te,Ud as T,cd as K,da as we,rd as Y,v as x,xa as A}from"./chunk-D5X27FT5.js";import{a,f as H}from"./chunk-G5BIPHMS.js";import{ListStateStorage as Ge,mergeProcessResults as $e}from"@sentio/runtime";var p=H(Y(),1);var Ze="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 Xe(n,e){return f(n)?n:e.object(n)}a(Xe,"transactionArgumentOrObject");function et(n,e){return f(n)?n:typeof n=="string"?e.pure.string(n):e.pure.u64(n)}a(et,"transactionArgumentOrPure");function tt(n,e){return f(n)?n:e.pure.address(n)}a(tt,"transactionArgumentOrPureAddress");function nt(n,e){return f(n)?n:e.pure.u8(n)}a(nt,"transactionArgumentOrPureU8");function rt(n,e){return f(n)?n:e.pure.u16(n)}a(rt,"transactionArgumentOrPureU16");function st(n,e){return f(n)?n:e.pure.u32(n)}a(st,"transactionArgumentOrPureU32");function ot(n,e){return f(n)?n:e.pure.u64(n)}a(ot,"transactionArgumentOrPureU64");function it(n,e){return f(n)?n:e.pure.u128(n)}a(it,"transactionArgumentOrPureU128");function at(n,e){return f(n)?n:e.pure.u256(n)}a(at,"transactionArgumentOrPureU256");function ct(n,e){return f(n)?n:e.pure.bool(n)}a(ct,"transactionArgumentOrPureBool");function ut(n,e){return f(n)?n:e.makeMoveVec({elements:n.map(t=>e.object(t))})}a(ut,"transactionArgumentOrVec");function X(n){return{address:n.address,exposedFunctions:Object.entries(n.exposedFunctions).map(([e,t])=>Fe(e,t)),name:n.name,structs:Object.entries(n.structs).map(([e,t])=>_e(e,t))}}a(X,"toInternalModule");function Fe(n,e){let t;switch(e.visibility){case"Private":t=z.PRIVATE;break;case"Public":t=z.PUBLIC;break;case"Friend":t=z.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(y),return:e.return.map(y),visibility:t}}a(Fe,"toInternalFunction");function _e(n,e){return{abilities:e.abilities.abilities,fields:e.fields.map(Le),typeParams:e.typeParameters.map(t=>({constraints:t.constraints.abilities})),isNative:!1,isEvent:!1,name:n}}a(_e,"toInternalStruct");function Le(n){return{name:n.name,type:y(n.type)}}a(Le,"toInternalField");function y(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(y);return new I(e,t)}if("Vector"in n)return new I("Vector",[y(n.Vector)]);if("TypeParameter"in n)return new I("T"+n.TypeParameter);if("Reference"in n){let e=y(n.Reference);return e.reference=!0,e}if("MutableReference"in n){let e=y(n.MutableReference);return e.reference=!0,e.mutable=!0,e}throw new Error("Unexpected sui type")}a(y,"toTypeDescriptor");var ee=class extends Ie{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(X)}getAllEventStructs(e){let t=new Map;for(let r of e){let s=ve(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 w=class extends ye{static{a(this,"MoveCoder")}constructor(e){super(new ee(e))}load(e,t){let r=this.moduleMapping.get(e.address+"::"+e.name),s=this.moduleMapping.get(t+"::"+e.name);return r&&s||(r=X(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 Ae(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 xe(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=F(e)),this.filterAndDecodeStruct(e,t)}async getDynamicFields(e,t=ae,r=ae){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 _[i]();case"address":return _.Address;case"vector":return _.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 _.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=F(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}}},Ve="https://fullnode.mainnet.sui.io/",Ne=new Map;function Ee(n=Ve){let e=Ne.get(n);return e||(e=new w(new Me({url:n})),Ne.set(n,e)),e}a(Ee,"defaultMoveCoder");var ke=new Map,ue;async function Ue(n){let e=ke.get(n);if(!e){e=new w(n);let t=await n.getChainIdentifier(),r=Ee();ue||(ue=await r.adapter.getChainId()),t===ue&&(e=r),ke.set(n,e)}return e}a(Ue,"getMoveCoder");var De=new Map;function P(n=g.MAIN_NET){let e=De.get(n);return e||(e=new w(M(n)),De.set(n,e)),e}a(P,"defaultMoveCoder");import("node:process").then(n=>n.stdout.write(""));var b=class extends ce{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:K(t)}}get client(){return M(this.network)}},N=class extends ce{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:K(t)}}get client(){return M(this.network)}},de=class extends je{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:K(t)}}get client(){return M(this.network)}getTimestamp(){return this.timestamp.getDate()}},te=class extends de{static{a(this,"SuiObjectContext")}contractName="object";objectId;constructor(e,t,r,s,o,i){super(e,t,s,o,i),this.objectId=t}};import("node:process").then(n=>n.stdout.write(""));function Re(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(Re,"getMoveCalls");import("node:process").then(n=>n.stdout.write(""));var L={resourceChanges:!1,allEvents:!1,inputs:!1};function fe(n){return{startCheckpoint:n.startCheckpoint||0n,address:n.address===T?T:B(n.address),network:n.network||g.MAIN_NET,baseLabels:n.baseLabels}}a(fe,"configure");var V=class n extends Ge{static{a(this,"SuiProcessorState")}static INSTANCE=new n},U=class{static{a(this,"SuiBaseProcessor")}moduleName;config;eventHandlers=[];callHandlers=[];objectChangeHandlers=[];coder;constructor(e,t){this.moduleName=e,this.config=fe(t),V.INSTANCE.addValue(this),this.coder=P(this.config.network)}getChainId(){return this.config.network}onMoveEvent(e,t,r){let s=[],o=A.fromPartial({...L,...r});Array.isArray(t)?s=t:s.push(t);let i=this,u=new Set(s.map(c=>c.type));return this.eventHandlers.push({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 D=Number(h.id.eventSeq)||0,[Oe,R,ie]=F(h.type).qname.split(m);if(!u.has([R,ie].join(m)))continue;let W=new b(i.moduleName,i.config.network,i.config.address,c.timestamp||new Date(0),c.slot,d,D,i.config.baseLabels),He=await i.coder.decodeEvent(h);await e(He||h,W),C.push(W.stopAndGetResult())}return $e(C)},"handler"),filters:s,fetchConfig:o}),this}onEntryFunctionCall(e,t,r){let s=[],o=A.fromPartial({...L,...r});Array.isArray(t)?s=t:s.push(t);let i=this,u=new Set(s.map(c=>c.function));return this.callHandlers.push({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=Re(d),D=d.transaction?.data?.transaction;if(!D)throw new p.ServerError(p.Status.INVALID_ARGUMENT,"Unexpected getTransactionKind get empty");let Oe=D.kind==="ProgrammableTransaction"?D:void 0;for(let R of h){let ie=[R.module,R.function].join(m);if(!u.has(ie))continue;let W=await i.coder.decodeFunctionPayload(R,Oe?.inputs||[]);await e(W,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=A.fromPartial({...L,...r}),o=this;return this.callHandlers.push({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({handler:a(async function(s){let o=new N(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}},le=class n extends U{static{a(this,"SuiModulesProcessor")}static bind(e){return new n(T,e)}},pe=class n extends U{static{a(this,"SuiGlobalProcessor")}static bind(e){return new n(T,{...e,address:T})}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 Je}from"@sentio/runtime";var k=H(Y(),1);var me={owned:!1},v=class n extends Je{static{a(this,"SuiAccountProcessorState")}static INSTANCE=new n},ne=class{static{a(this,"SuiBaseObjectOrAddressProcessor")}config;ownerType;templateId;objectHandlers=[];objectChangeHandlers=[];constructor(e){e.ownerType===x.TYPE?this.config={startCheckpoint:e.startCheckpoint||0n,address:e.address==="*"?"*":Z(e.address),network:e.network||g.MAIN_NET,baseLabels:e.baseLabels}:this.config=fe(e),this.ownerType=e.ownerType,v.INSTANCE.addValue(this)}getChainId(){return this.config.network}onInterval(e,t,r,s,o){let i=this;return this.objectHandlers.push({handler:a(async function(u){let c=new te(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:{...me,...o}}),this}},G=class extends ne{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)}},j=class n extends G{static{a(this,"SuiAddressProcessor")}callHandlers=[];static bind(e){return new n({...e,ownerType:x.ADDRESS})}async doHandle(e,t,r){return e(t.objects,r)}onTransactionBlock(e,t,r){let s=A.fromPartial({...L,...r}),o={fromAndToAddress:{from:"",to:this.config.address},...t},i=this;return this.callHandlers.push({handler:a(async function(u){if(!u.transaction)throw new k.ServerError(k.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}},$=class n extends G{static{a(this,"SuiObjectProcessor")}static bind(e){return new n({address:e.objectId,network:e.network,startCheckpoint:e.startCheckpoint,ownerType:x.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)}},he=class n extends ne{static{a(this,"SuiObjectTypeProcessor")}objectType;static bind(e){let t=new n({address:T,network:e.network,startCheckpoint:e.startCheckpoint,ownerType:x.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 k.ServerError(k.Status.INVALID_ARGUMENT,"object change not supported in testnet");let t=this;return this.objectChangeHandlers.push({handler:a(async function(r){let s=new N(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)}},J=class n extends G{static{a(this,"SuiWrappedObjectProcessor")}static bind(e){return new n({address:e.objectId,network:e.network,startCheckpoint:e.startCheckpoint,ownerType:x.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 qe}from"@sentio/runtime";var S=H(Y(),1);var E=class n extends qe{static{a(this,"SuiAccountProcessorTemplateState")}static INSTANCE=new n},q=class{static{a(this,"SuiObjectOrAddressProcessorTemplate")}id;objectHandlers=[];binds=new Set;constructor(){this.id=E.INSTANCE.getValues().length,E.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=B(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}}),Q.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=B(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=Q.INSTANCE.unregister();for(let c of i){if(c.contract?.chainId===e.network&&c.contract.address==r){o++;continue}Q.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=v.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}v.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:{...me,...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 ge=class extends q{static{a(this,"SuiAddressProcessorTemplate")}handlers=[];createProcessor(e){let t=j.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}},be=class extends q{static{a(this,"SuiObjectProcessorTemplate")}createProcessor(e){let t=$.bind(e);return t.templateId=this.id,t}},Se=class extends q{static{a(this,"SuiWrappedObjectProcessorTemplate")}createProcessor(e){let t=J.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 re,mergeProcessResults as se,Plugin as We,PluginManager as Ke,USER_PROCESSOR as Ye}from"@sentio/runtime";var l=H(Y(),1);var Ce=H(Be(),1);var oe=class extends We{static{a(this,"SuiPlugin")}name="SuiPlugin";handlers={suiCallHandlers:[],suiEventHandlers:[],suiObjectHandlers:[],suiObjectChangeHandlers:[]};async start(e){await Pe(),console.log("total instances:",e.templateInstances.length);let t=new Set(Object.values(Ce.SuiChainId));for(let r of e.templateInstances){if(!t.has(r.contract?.chainId||""))continue;console.log("start template instance",r.templateId),E.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},Qe)}}async configure(e){let t={suiCallHandlers:[],suiEventHandlers:[],suiObjectHandlers:[],suiObjectChangeHandlers:[]};for(let r of V.INSTANCE.getValues()){let s=Te.fromPartial({transactionConfig:[],processorType:Ye,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};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};s.moveCallConfigs.push(u)}for(let o of r.objectChangeHandlers){let i=t.suiObjectChangeHandlers.push(o.handler)-1,u={type:o.type,handlerId:i};s.moveResourceChangeConfigs.push(u)}e.contractConfigs.push(s)}for(let r of v.INSTANCE.getValues()){let s=we.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};s.moveResourceChangeConfigs.push(u)}for(let o of r.objectHandlers){let i=t.suiObjectHandlers.push(o.handler)-1;s.moveIntervalConfigs.push({intervalConfig:{handlerId:i,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 j)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};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
|
`+re(o))}));return se(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
|
`+re(i))});r.push(o)}return se(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
|
`+re(o))}));return se(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
|
`+re(o))}));return se(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)}}};Ke.INSTANCE.register(new oe);var Qe=new b("",Ce.SuiChainId.SUI_MAINNET,"",new Date,0n,{},0,{});import("node:process").then(n=>n.stdout.write(""));import("node:process").then(n=>n.stdout.write(""));export{Ze as a,Xe as b,et as c,tt as d,nt as e,rt as f,st as g,ot as h,it as i,at as j,ct as k,ut as l,w as m,Ue as n,P as o,b as p,N as q,de as r,te as s,Re as t,U as u,le as v,pe as w,j as x,$ as y,he as z,J as A,ge as B,be as C,Se as D,oe as E};
|
|
7
|
-
//# sourceMappingURL=chunk-
|
|
7
|
+
//# sourceMappingURL=chunk-BV6WCIY7.js.map
|