@vleap/warps-adapter-multiversx 0.2.0-alpha.46 → 0.2.0-alpha.48
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/dist/index.d.cts +8 -11
- package/dist/index.d.ts +8 -11
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +5 -5
package/dist/index.d.cts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as _vleap_warps from '@vleap/warps';
|
|
2
|
-
import { WarpClientConfig, Adapter, WarpChain, WarpChainEnv, WarpChainInfo, AdapterFactory, WarpChainAsset, AdapterWarpAbiBuilder, WarpAbi, WarpCacheConfig, WarpContractAction, WarpQueryAction, WarpBrand, WarpBuilder, AdapterWarpBuilder, Warp, WarpContract, WarpContractVerification, AdapterWarpDataLoader, WarpChainAccount, WarpChainAction, WarpDataLoaderOptions, AdapterWarpExecutor, WarpExecutable, WarpExecution,
|
|
2
|
+
import { WarpClientConfig, Adapter, WarpChain, WarpChainEnv, WarpChainInfo, AdapterFactory, WarpChainAsset, AdapterWarpAbiBuilder, WarpAbiContents, WarpAdapterGenericTransaction, WarpAbi, WarpCacheConfig, WarpContractAction, WarpQueryAction, WarpBrand, WarpBuilder, AdapterWarpBuilder, Warp, WarpContract, WarpContractVerification, AdapterWarpDataLoader, WarpChainAccount, WarpChainAction, WarpDataLoaderOptions, AdapterWarpExecutor, WarpExecutable, WarpExecution, AdapterWarpExplorer, AdapterWarpRegistry, WarpRegistryConfigInfo, WarpRegistryInfo, AdapterWarpResults, ResolvedInput, WarpExecutionResults, AdapterWarpSerializer, WarpSerializer, WarpActionInputType, WarpNativeValue, BaseWarpActionInputType, WarpAdapterGenericType } from '@vleap/warps';
|
|
3
3
|
import { TypedValue, Type, OptionValue, OptionalValue, List, VariadicValue, CompositeValue, StringValue, U8Value, U16Value, U32Value, U64Value, BigUIntValue, BooleanValue, AddressValue, TokenIdentifierValue, BytesValue, TokenTransfer, Struct, CodeMetadataValue, NothingValue, TransactionOnNetwork, AbiRegistry, Transaction, NetworkEntrypoint } from '@multiversx/sdk-core';
|
|
4
|
+
import { WarpAdapterGenericTransaction as WarpAdapterGenericTransaction$1 } from '@vleap/warps/src/types';
|
|
4
5
|
|
|
5
6
|
declare const getAllMultiversxAdapters: (config: WarpClientConfig, fallback?: Adapter) => Adapter[];
|
|
6
7
|
declare const getAllMultiversxChainNames: () => WarpChain[];
|
|
@@ -48,13 +49,8 @@ declare const MultiversxExplorersConfig: {
|
|
|
48
49
|
};
|
|
49
50
|
declare const ExplorerUrls: Record<ExplorerName, string>;
|
|
50
51
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
name: string;
|
|
54
|
-
decimals: number;
|
|
55
|
-
};
|
|
56
|
-
declare const KnownTokens: KnownToken[];
|
|
57
|
-
declare const findKnownTokenById: (id: string) => KnownToken | null;
|
|
52
|
+
declare const KnownTokens: WarpChainAsset[];
|
|
53
|
+
declare const findKnownTokenById: (id: string) => WarpChainAsset | null;
|
|
58
54
|
|
|
59
55
|
declare const option_value: (value: TypedValue | null, type?: Type) => OptionValue;
|
|
60
56
|
declare const optional_value: (value: TypedValue | null, type?: Type) => OptionalValue;
|
|
@@ -81,6 +77,7 @@ declare class WarpMultiversxAbiBuilder implements AdapterWarpAbiBuilder {
|
|
|
81
77
|
private readonly contractLoader;
|
|
82
78
|
private readonly cache;
|
|
83
79
|
constructor(config: WarpClientConfig, chain: WarpChainInfo);
|
|
80
|
+
createInscriptionTransaction(abi: WarpAbiContents): Promise<WarpAdapterGenericTransaction>;
|
|
84
81
|
createFromRaw(encoded: string): Promise<WarpAbi>;
|
|
85
82
|
createFromTransaction(tx: TransactionOnNetwork): Promise<WarpAbi>;
|
|
86
83
|
createFromTransactionHash(hash: string, cache?: WarpCacheConfig): Promise<WarpAbi | null>;
|
|
@@ -104,7 +101,7 @@ declare class WarpMultiversxBuilder extends WarpBuilder implements AdapterWarpBu
|
|
|
104
101
|
private readonly cache;
|
|
105
102
|
private readonly core;
|
|
106
103
|
constructor(config: WarpClientConfig, chain: WarpChainInfo);
|
|
107
|
-
createInscriptionTransaction(warp: Warp): Promise<
|
|
104
|
+
createInscriptionTransaction(warp: Warp): Promise<WarpAdapterGenericTransaction$1>;
|
|
108
105
|
createFromTransaction(tx: TransactionOnNetwork, validate?: boolean): Promise<Warp>;
|
|
109
106
|
createFromTransactionHash(hash: string, cache?: WarpCacheConfig): Promise<Warp | null>;
|
|
110
107
|
}
|
|
@@ -119,6 +116,7 @@ declare class WarpMultiversxContractLoader {
|
|
|
119
116
|
declare class WarpMultiversxDataLoader implements AdapterWarpDataLoader {
|
|
120
117
|
private readonly config;
|
|
121
118
|
private readonly chain;
|
|
119
|
+
private cache;
|
|
122
120
|
constructor(config: WarpClientConfig, chain: WarpChainInfo);
|
|
123
121
|
getAccount(address: string): Promise<WarpChainAccount>;
|
|
124
122
|
getAccountAssets(address: string): Promise<WarpChainAsset[]>;
|
|
@@ -140,7 +138,6 @@ declare class WarpMultiversxExecutor implements AdapterWarpExecutor {
|
|
|
140
138
|
createTransferTransaction(executable: WarpExecutable): Promise<Transaction>;
|
|
141
139
|
createContractCallTransaction(executable: WarpExecutable): Promise<Transaction>;
|
|
142
140
|
executeQuery(executable: WarpExecutable): Promise<WarpExecution>;
|
|
143
|
-
preprocessInput(chain: WarpChainInfo, input: string, type: WarpActionInputType, value: string): Promise<string>;
|
|
144
141
|
static getChainEntrypoint(chainInfo: WarpChainInfo, env: WarpChainEnv, config?: WarpClientConfig): NetworkEntrypoint;
|
|
145
142
|
signMessage(message: string, privateKey: string): Promise<string>;
|
|
146
143
|
private toTokenTransfers;
|
|
@@ -238,4 +235,4 @@ declare class WarpMultiversxSerializer implements AdapterWarpSerializer {
|
|
|
238
235
|
typeToString(type: Type): WarpActionInputType;
|
|
239
236
|
}
|
|
240
237
|
|
|
241
|
-
export { type ExplorerName, ExplorerUrls,
|
|
238
|
+
export { type ExplorerName, ExplorerUrls, KnownTokens, MultiversxExplorers, MultiversxExplorersConfig, NativeTokenEgld, NativeTokenVibe, VibechainExplorers, WarpMultiversxAbiBuilder, WarpMultiversxBrandBuilder, WarpMultiversxBuilder, WarpMultiversxConstants, WarpMultiversxContractLoader, WarpMultiversxDataLoader, WarpMultiversxExecutor, WarpMultiversxExplorer, WarpMultiversxRegistry, WarpMultiversxResults, WarpMultiversxSerializer, address_value, asset_value, biguint_value, boolean_value, codemeta_value, composite_value, createMultiversxAdapter, findKnownTokenById, getAllMultiversxAdapters, getAllMultiversxChainNames, getMultiversxAdapter, getMultiversxRegistryAddress, getVibechainAdapter, hex_value, list_value, nothing_value, option_value, optional_value, string_value, token_value, u16_value, u32_value, u64_value, u8_value, variadic_value };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as _vleap_warps from '@vleap/warps';
|
|
2
|
-
import { WarpClientConfig, Adapter, WarpChain, WarpChainEnv, WarpChainInfo, AdapterFactory, WarpChainAsset, AdapterWarpAbiBuilder, WarpAbi, WarpCacheConfig, WarpContractAction, WarpQueryAction, WarpBrand, WarpBuilder, AdapterWarpBuilder, Warp, WarpContract, WarpContractVerification, AdapterWarpDataLoader, WarpChainAccount, WarpChainAction, WarpDataLoaderOptions, AdapterWarpExecutor, WarpExecutable, WarpExecution,
|
|
2
|
+
import { WarpClientConfig, Adapter, WarpChain, WarpChainEnv, WarpChainInfo, AdapterFactory, WarpChainAsset, AdapterWarpAbiBuilder, WarpAbiContents, WarpAdapterGenericTransaction, WarpAbi, WarpCacheConfig, WarpContractAction, WarpQueryAction, WarpBrand, WarpBuilder, AdapterWarpBuilder, Warp, WarpContract, WarpContractVerification, AdapterWarpDataLoader, WarpChainAccount, WarpChainAction, WarpDataLoaderOptions, AdapterWarpExecutor, WarpExecutable, WarpExecution, AdapterWarpExplorer, AdapterWarpRegistry, WarpRegistryConfigInfo, WarpRegistryInfo, AdapterWarpResults, ResolvedInput, WarpExecutionResults, AdapterWarpSerializer, WarpSerializer, WarpActionInputType, WarpNativeValue, BaseWarpActionInputType, WarpAdapterGenericType } from '@vleap/warps';
|
|
3
3
|
import { TypedValue, Type, OptionValue, OptionalValue, List, VariadicValue, CompositeValue, StringValue, U8Value, U16Value, U32Value, U64Value, BigUIntValue, BooleanValue, AddressValue, TokenIdentifierValue, BytesValue, TokenTransfer, Struct, CodeMetadataValue, NothingValue, TransactionOnNetwork, AbiRegistry, Transaction, NetworkEntrypoint } from '@multiversx/sdk-core';
|
|
4
|
+
import { WarpAdapterGenericTransaction as WarpAdapterGenericTransaction$1 } from '@vleap/warps/src/types';
|
|
4
5
|
|
|
5
6
|
declare const getAllMultiversxAdapters: (config: WarpClientConfig, fallback?: Adapter) => Adapter[];
|
|
6
7
|
declare const getAllMultiversxChainNames: () => WarpChain[];
|
|
@@ -48,13 +49,8 @@ declare const MultiversxExplorersConfig: {
|
|
|
48
49
|
};
|
|
49
50
|
declare const ExplorerUrls: Record<ExplorerName, string>;
|
|
50
51
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
name: string;
|
|
54
|
-
decimals: number;
|
|
55
|
-
};
|
|
56
|
-
declare const KnownTokens: KnownToken[];
|
|
57
|
-
declare const findKnownTokenById: (id: string) => KnownToken | null;
|
|
52
|
+
declare const KnownTokens: WarpChainAsset[];
|
|
53
|
+
declare const findKnownTokenById: (id: string) => WarpChainAsset | null;
|
|
58
54
|
|
|
59
55
|
declare const option_value: (value: TypedValue | null, type?: Type) => OptionValue;
|
|
60
56
|
declare const optional_value: (value: TypedValue | null, type?: Type) => OptionalValue;
|
|
@@ -81,6 +77,7 @@ declare class WarpMultiversxAbiBuilder implements AdapterWarpAbiBuilder {
|
|
|
81
77
|
private readonly contractLoader;
|
|
82
78
|
private readonly cache;
|
|
83
79
|
constructor(config: WarpClientConfig, chain: WarpChainInfo);
|
|
80
|
+
createInscriptionTransaction(abi: WarpAbiContents): Promise<WarpAdapterGenericTransaction>;
|
|
84
81
|
createFromRaw(encoded: string): Promise<WarpAbi>;
|
|
85
82
|
createFromTransaction(tx: TransactionOnNetwork): Promise<WarpAbi>;
|
|
86
83
|
createFromTransactionHash(hash: string, cache?: WarpCacheConfig): Promise<WarpAbi | null>;
|
|
@@ -104,7 +101,7 @@ declare class WarpMultiversxBuilder extends WarpBuilder implements AdapterWarpBu
|
|
|
104
101
|
private readonly cache;
|
|
105
102
|
private readonly core;
|
|
106
103
|
constructor(config: WarpClientConfig, chain: WarpChainInfo);
|
|
107
|
-
createInscriptionTransaction(warp: Warp): Promise<
|
|
104
|
+
createInscriptionTransaction(warp: Warp): Promise<WarpAdapterGenericTransaction$1>;
|
|
108
105
|
createFromTransaction(tx: TransactionOnNetwork, validate?: boolean): Promise<Warp>;
|
|
109
106
|
createFromTransactionHash(hash: string, cache?: WarpCacheConfig): Promise<Warp | null>;
|
|
110
107
|
}
|
|
@@ -119,6 +116,7 @@ declare class WarpMultiversxContractLoader {
|
|
|
119
116
|
declare class WarpMultiversxDataLoader implements AdapterWarpDataLoader {
|
|
120
117
|
private readonly config;
|
|
121
118
|
private readonly chain;
|
|
119
|
+
private cache;
|
|
122
120
|
constructor(config: WarpClientConfig, chain: WarpChainInfo);
|
|
123
121
|
getAccount(address: string): Promise<WarpChainAccount>;
|
|
124
122
|
getAccountAssets(address: string): Promise<WarpChainAsset[]>;
|
|
@@ -140,7 +138,6 @@ declare class WarpMultiversxExecutor implements AdapterWarpExecutor {
|
|
|
140
138
|
createTransferTransaction(executable: WarpExecutable): Promise<Transaction>;
|
|
141
139
|
createContractCallTransaction(executable: WarpExecutable): Promise<Transaction>;
|
|
142
140
|
executeQuery(executable: WarpExecutable): Promise<WarpExecution>;
|
|
143
|
-
preprocessInput(chain: WarpChainInfo, input: string, type: WarpActionInputType, value: string): Promise<string>;
|
|
144
141
|
static getChainEntrypoint(chainInfo: WarpChainInfo, env: WarpChainEnv, config?: WarpClientConfig): NetworkEntrypoint;
|
|
145
142
|
signMessage(message: string, privateKey: string): Promise<string>;
|
|
146
143
|
private toTokenTransfers;
|
|
@@ -238,4 +235,4 @@ declare class WarpMultiversxSerializer implements AdapterWarpSerializer {
|
|
|
238
235
|
typeToString(type: Type): WarpActionInputType;
|
|
239
236
|
}
|
|
240
237
|
|
|
241
|
-
export { type ExplorerName, ExplorerUrls,
|
|
238
|
+
export { type ExplorerName, ExplorerUrls, KnownTokens, MultiversxExplorers, MultiversxExplorersConfig, NativeTokenEgld, NativeTokenVibe, VibechainExplorers, WarpMultiversxAbiBuilder, WarpMultiversxBrandBuilder, WarpMultiversxBuilder, WarpMultiversxConstants, WarpMultiversxContractLoader, WarpMultiversxDataLoader, WarpMultiversxExecutor, WarpMultiversxExplorer, WarpMultiversxRegistry, WarpMultiversxResults, WarpMultiversxSerializer, address_value, asset_value, biguint_value, boolean_value, codemeta_value, composite_value, createMultiversxAdapter, findKnownTokenById, getAllMultiversxAdapters, getAllMultiversxChainNames, getMultiversxAdapter, getMultiversxRegistryAddress, getVibechainAdapter, hex_value, list_value, nothing_value, option_value, optional_value, string_value, token_value, u16_value, u32_value, u64_value, u8_value, variadic_value };
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var ae=Object.defineProperty;var xe=Object.getOwnPropertyDescriptor;var We=Object.getOwnPropertyNames;var Te=Object.prototype.hasOwnProperty;var ve=(o,e)=>{for(var t in e)ae(o,t,{get:e[t],enumerable:!0})},be=(o,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of We(e))!Te.call(o,a)&&a!==t&&ae(o,a,{get:()=>e[a],enumerable:!(r=xe(e,a))||r.enumerable});return o};var Ee=o=>be(ae({},"__esModule",{value:!0}),o);var Ke={};ve(Ke,{ExplorerUrls:()=>P,KnownTokens:()=>fe,MultiversxExplorers:()=>ge,MultiversxExplorersConfig:()=>oe,NativeTokenEgld:()=>re,NativeTokenVibe:()=>Ce,VibechainExplorers:()=>ye,WarpMultiversxAbiBuilder:()=>F,WarpMultiversxBrandBuilder:()=>z,WarpMultiversxBuilder:()=>H,WarpMultiversxConstants:()=>Ie,WarpMultiversxContractLoader:()=>D,WarpMultiversxDataLoader:()=>Q,WarpMultiversxExecutor:()=>y,WarpMultiversxExplorer:()=>G,WarpMultiversxRegistry:()=>j,WarpMultiversxResults:()=>U,WarpMultiversxSerializer:()=>k,address_value:()=>De,asset_value:()=>Qe,biguint_value:()=>Le,boolean_value:()=>qe,codemeta_value:()=>Ge,composite_value:()=>Pe,createMultiversxAdapter:()=>K,findKnownTokenById:()=>se,getAllMultiversxAdapters:()=>Ne,getAllMultiversxChainNames:()=>Ve,getMultiversxAdapter:()=>pe,getMultiversxRegistryAddress:()=>v,getVibechainAdapter:()=>le,hex_value:()=>He,list_value:()=>Fe,nothing_value:()=>je,option_value:()=>Se,optional_value:()=>ke,string_value:()=>Ue,token_value:()=>ze,u16_value:()=>Oe,u32_value:()=>Me,u64_value:()=>$e,u8_value:()=>_e,variadic_value:()=>Re});module.exports=Ee(Ke);var me=require("@vleap/warps");var L=require("@vleap/warps");var Y=require("@multiversx/sdk-core"),N=require("@vleap/warps");var ie=require("@vleap/warps");var d=require("@multiversx/sdk-core"),T=require("@vleap/warps");var $=require("@multiversx/sdk-core"),w=require("@vleap/warps");var n=require("@multiversx/sdk-core"),W=require("@vleap/warps");var M=o=>!o.includes("-"),X=o=>M(o)?`${o}-000000`:o;var de=new RegExp(`${W.WarpConstants.ArgParamsSeparator}(.*)`),k=class{constructor(){this.coreSerializer=new W.WarpSerializer}typedToString(e){let t=e.getType();if(t.hasExactClass(n.OptionType.ClassName)||e.hasClassOrSuperclass(n.OptionValue.ClassName))return e.isSet()?`option:${this.typedToString(e.getTypedValue())}`:"option:null";if(t.hasExactClass(n.OptionalType.ClassName)||e.hasClassOrSuperclass(n.OptionalValue.ClassName))return e.isSet()?`optional:${this.typedToString(e.getTypedValue())}`:"optional:null";if(t.hasExactClass(n.ListType.ClassName)||e.hasClassOrSuperclass(n.List.ClassName)){let r=e.getItems(),s=r.map(i=>this.typedToString(i).split(W.WarpConstants.ArgParamsSeparator)[0])[0],c=r.map(i=>this.typedToString(i).split(W.WarpConstants.ArgParamsSeparator)[1]);return`list:${s}:${c.join(",")}`}if(t.hasExactClass(n.VariadicType.ClassName)||e.hasClassOrSuperclass(n.VariadicValue.ClassName)){let r=e.getItems(),s=r.map(i=>this.typedToString(i).split(W.WarpConstants.ArgParamsSeparator)[0])[0],c=r.map(i=>this.typedToString(i).split(W.WarpConstants.ArgParamsSeparator)[1]);return`variadic:${s}:${c.join(",")}`}if(t.hasExactClass(n.CompositeType.ClassName)||e.hasClassOrSuperclass(n.CompositeValue.ClassName)){let r=e.getItems(),a=r.map(l=>this.typedToString(l).split(W.WarpConstants.ArgParamsSeparator)[0]),s=r.map(l=>this.typedToString(l).split(W.WarpConstants.ArgParamsSeparator)[1]),c=a.join(W.WarpConstants.ArgCompositeSeparator),i=s.join(W.WarpConstants.ArgCompositeSeparator);return`composite(${c}):${i}`}if(t.hasExactClass(n.BigUIntType.ClassName)||e.hasClassOrSuperclass(n.BigUIntValue.ClassName)||t.getName()==="BigUint")return`biguint:${BigInt(e.valueOf().toFixed())}`;if(t.hasExactClass(n.U8Type.ClassName)||e.hasClassOrSuperclass(n.U8Value.ClassName))return`uint8:${e.valueOf().toNumber()}`;if(t.hasExactClass(n.U16Type.ClassName)||e.hasClassOrSuperclass(n.U16Value.ClassName))return`uint16:${e.valueOf().toNumber()}`;if(t.hasExactClass(n.U32Type.ClassName)||e.hasClassOrSuperclass(n.U32Value.ClassName))return`uint32:${e.valueOf().toNumber()}`;if(t.hasExactClass(n.U64Type.ClassName)||e.hasClassOrSuperclass(n.U64Value.ClassName))return`uint64:${BigInt(e.valueOf().toFixed())}`;if(t.hasExactClass(n.StringType.ClassName)||e.hasClassOrSuperclass(n.StringValue.ClassName))return`string:${e.valueOf()}`;if(t.hasExactClass(n.BooleanType.ClassName)||e.hasClassOrSuperclass(n.BooleanValue.ClassName))return`bool:${e.valueOf()}`;if(t.hasExactClass(n.AddressType.ClassName)||e.hasClassOrSuperclass(n.AddressValue.ClassName))return`address:${e.valueOf().toBech32()}`;if(t.hasExactClass(n.TokenIdentifierType.ClassName)||e.hasClassOrSuperclass(n.TokenIdentifierValue.ClassName))return`token:${e.valueOf()}`;if(t.hasExactClass(n.BytesType.ClassName)||e.hasClassOrSuperclass(n.BytesValue.ClassName))return`hex:${e.valueOf().toString("hex")}`;if(t.hasExactClass(n.CodeMetadataType.ClassName)||e.hasClassOrSuperclass(n.CodeMetadataValue.ClassName))return`codemeta:${e.valueOf().toString()}`;if(t.getName()==="EsdtTokenPayment"){let r=e.getFieldValue("token_identifier").valueOf(),a=e.getFieldValue("token_nonce").valueOf(),s=e.getFieldValue("amount").valueOf();return`asset:${new n.TokenComputer().computeExtendedIdentifier(new n.Token({identifier:r,nonce:BigInt(a)}))}|${s}`}throw new Error(`WarpArgSerializer (typedToString): Unsupported input type: ${e.getClassName()}`)}typedToNative(e){let t=this.typedToString(e);return this.coreSerializer.stringToNative(t)}nativeToTyped(e,t){let r=this.coreSerializer.nativeToString(e,t);return this.stringToTyped(r)}nativeToType(e){if(e.startsWith("composite")){let t=e.match(/\(([^)]+)\)/)?.[1];return new n.CompositeType(...t.split(W.WarpConstants.ArgCompositeSeparator).map(r=>this.nativeToType(r)))}if(e==="string")return new n.StringType;if(e==="uint8")return new n.U8Type;if(e==="uint16")return new n.U16Type;if(e==="uint32")return new n.U32Type;if(e==="uint64")return new n.U64Type;if(e==="biguint")return new n.BigUIntType;if(e==="bool")return new n.BooleanType;if(e==="address")return new n.AddressType;if(e==="token")return new n.TokenIdentifierType;if(e==="hex")return new n.BytesType;if(e==="codemeta")return new n.CodeMetadataType;if(e==="asset")return new n.StructType("EsdtTokenPayment",[new n.FieldDefinition("token_identifier","",new n.TokenIdentifierType),new n.FieldDefinition("token_nonce","",new n.U64Type),new n.FieldDefinition("amount","",new n.BigUIntType)]);throw new Error(`WarpArgSerializer (nativeToType): Unsupported input type: ${e}`)}stringToTyped(e){let[t,r]=e.split(/:(.*)/,2);if(t==="null"||t===null)return new n.NothingValue;if(t==="option"){let a=this.stringToTyped(r);return a instanceof n.NothingValue?n.OptionValue.newMissingTyped(a.getType()):n.OptionValue.newProvided(a)}if(t==="optional"){let a=this.stringToTyped(r);return a instanceof n.NothingValue?n.OptionalValue.newMissing():new n.OptionalValue(a.getType(),a)}if(t==="list"){let[a,s]=r.split(de,2),i=s.split(",").map(l=>this.stringToTyped(`${a}:${l}`));return new n.List(this.nativeToType(a),i)}if(t==="variadic"){let[a,s]=r.split(de,2),i=s.split(",").map(l=>this.stringToTyped(`${a}:${l}`));return new n.VariadicValue(new n.VariadicType(this.nativeToType(a)),i)}if(t.startsWith("composite")){let a=t.match(/\(([^)]+)\)/)?.[1],s=r.split(W.WarpConstants.ArgCompositeSeparator),c=a.split(W.WarpConstants.ArgCompositeSeparator),i=s.map((m,f)=>this.stringToTyped(`${c[f]}:${m}`)),l=i.map(m=>m.getType());return new n.CompositeValue(new n.CompositeType(...l),i)}if(t==="string")return r?n.StringValue.fromUTF8(r):new n.NothingValue;if(t==="uint8")return r?new n.U8Value(Number(r)):new n.NothingValue;if(t==="uint16")return r?new n.U16Value(Number(r)):new n.NothingValue;if(t==="uint32")return r?new n.U32Value(Number(r)):new n.NothingValue;if(t==="uint64")return r?new n.U64Value(BigInt(r)):new n.NothingValue;if(t==="biguint")return r?new n.BigUIntValue(BigInt(r)):new n.NothingValue;if(t==="bool")return r?new n.BooleanValue(typeof r=="boolean"?r:r==="true"):new n.NothingValue;if(t==="address")return r?new n.AddressValue(n.Address.newFromBech32(r)):new n.NothingValue;if(t==="token")return r?new n.TokenIdentifierValue(r):new n.NothingValue;if(t==="hex")return r?n.BytesValue.fromHex(r):new n.NothingValue;if(t==="codemeta")return new n.CodeMetadataValue(n.CodeMetadata.newFromBytes(Uint8Array.from(Buffer.from(r,"hex"))));if(t==="asset"){let[a,s]=r.split(W.WarpConstants.ArgCompositeSeparator),c=new n.TokenComputer,i=M(a)?X(a):c.extractIdentifierFromExtendedIdentifier(a),l=M(a)?0n:c.extractNonceFromExtendedIdentifier(a);return new n.Struct(this.nativeToType("asset"),[new n.Field(new n.TokenIdentifierValue(i),"token_identifier"),new n.Field(new n.U64Value(BigInt(l)),"token_nonce"),new n.Field(new n.BigUIntValue(BigInt(s)),"amount")])}throw new Error(`WarpArgSerializer (stringToTyped): Unsupported input type: ${t}`)}typeToString(e){if(e.hasExactClass(n.OptionType.ClassName))return"option:"+this.typeToString(e.getFirstTypeParameter());if(e.hasExactClass(n.OptionalType.ClassName))return"optional:"+this.typeToString(e.getFirstTypeParameter());if(e.hasExactClass(n.ListType.ClassName))return"list:"+this.typeToString(e.getFirstTypeParameter());if(e.hasExactClass(n.VariadicType.ClassName))return"variadic:"+this.typeToString(e.getFirstTypeParameter());if(e.hasExactClass(n.StringType.ClassName))return"string";if(e.hasExactClass(n.U8Type.ClassName))return"uint8";if(e.hasExactClass(n.U16Type.ClassName))return"uint16";if(e.hasExactClass(n.U32Type.ClassName))return"uint32";if(e.hasExactClass(n.U64Type.ClassName))return"uint64";if(e.hasExactClass(n.BigUIntType.ClassName))return"biguint";if(e.hasExactClass(n.BooleanType.ClassName))return"bool";if(e.hasExactClass(n.AddressType.ClassName))return"address";if(e.hasExactClass(n.TokenIdentifierType.ClassName))return"token";if(e.hasExactClass(n.BytesType.ClassName))return"hex";if(e.hasExactClass(n.CodeMetadataType.ClassName))return"codemeta";if(e.hasExactClass(n.StructType.ClassName)&&e.getClassName()==="EsdtTokenPayment")return"asset";throw new Error(`WarpArgSerializer (typeToString): Unsupported input type: ${e.getClassName()}`)}};var U=class{constructor(e,t){this.config=e;this.chain=t;this.abi=new F(e,t),this.serializer=new k,this.cache=new w.WarpCache(e.cache?.type)}async getTransactionExecutionResults(e,t){let{actionIndex:r}=(0,w.findWarpExecutableAction)(e),a=this.cache.get(w.WarpCacheKey.WarpExecutable(this.config.env,e.meta?.hash||"",r))??[],s=await this.extractContractResults(e,t,a),c=(0,w.getNextInfo)(this.config,[],e,r,s),i=(0,w.applyResultsToMessages)(e,s.results);return{success:t.status.isSuccessful(),warp:e,action:r,user:this.config.user?.wallets?.[this.chain.name]||null,txHash:t.hash,tx:t,next:c,values:s.values,valuesRaw:[],results:s.results,messages:i}}async extractContractResults(e,t,r){let{action:a,actionIndex:s}=(0,w.findWarpExecutableAction)(e),c=[],i={};if(!e.results||a.type!=="contract")return{values:c,results:i};if(!Object.values(e.results).some(C=>C.includes("out")||C.includes("event"))){for(let[C,g]of Object.entries(e.results))i[C]=g;return{values:c,results:await(0,w.evaluateResultsCommon)(e,i,s,r,this.config.transform?.runner)}}let m=await this.abi.getAbiForAction(a),f=new $.TransactionEventsParser({abi:m}),b=new $.SmartContractTransactionsOutcomeParser({abi:m}).parseExecute({transactionOnNetwork:t,function:a.func||void 0});for(let[C,g]of Object.entries(e.results)){if(g.startsWith(w.WarpConstants.Transform.Prefix))continue;if(g.startsWith("input.")){i[C]=g;continue}let I=(0,w.parseResultsOutIndex)(g);if(I!==null&&I!==s){i[C]=null;continue}let[E,A,R]=g.split(".");if(E==="event"){if(!A||isNaN(Number(R)))continue;let B=Number(R),x=(0,$.findEventsByFirstTopic)(t,A),q=f.parseEvents({events:x})[0],J=Object.values(q)[B]||null;c.push(J),i[C]=J&&J.valueOf()}else if(E==="out"||E.startsWith("out[")){if(!A)continue;let B=Number(A),x=b.values[B-1]||null;R&&(x=x[R]||null),x&&typeof x=="object"&&(x="toFixed"in x?x.toFixed():x.valueOf()),c.push(x),i[C]=x&&x.valueOf()}else i[C]=g}return{values:c,results:await(0,w.evaluateResultsCommon)(e,i,s,r)}}async extractQueryResults(e,t,r,a){let s=t.map(m=>this.serializer.typedToString(m)),c=t.map(m=>this.serializer.typedToNative(m)[1]),i={};if(!e.results)return{values:s,valuesRaw:c,results:i};let l=m=>{let f=m.split(".").slice(1).map(b=>parseInt(b)-1);if(f.length===0)return;let h=c[f[0]];for(let b=1;b<f.length;b++){if(h==null)return;h=h[f[b]]}return h};for(let[m,f]of Object.entries(e.results)){if(f.startsWith(w.WarpConstants.Transform.Prefix))continue;let h=(0,w.parseResultsOutIndex)(f);if(h!==null&&h!==r){i[m]=null;continue}f.startsWith("out.")||f==="out"||f.startsWith("out[")?i[m]=l(f)||null:i[m]=f}return{values:s,valuesRaw:c,results:await(0,w.evaluateResultsCommon)(e,i,r,a)}}async resolveWarpResultsRecursively(e){let t=e.warp,r=e.entryActionIndex,a=e.executor,s=e.inputs,c=e.meta,i=new Map,l=new Set,m=this;async function f(g,I=[]){if(i.has(g))return i.get(g);if(l.has(g))throw new Error(`Circular dependency detected at action ${g}`);l.add(g);let E=t.actions[g-1];if(!E)throw new Error(`Action ${g} not found`);let A;if(E.type==="query")A=await a.executeQuery(t,g,I);else if(E.type==="collect")A=await a.executeCollect(t,g,I,c);else throw new Error(`Unsupported or interactive action type: ${E.type}`);if(i.set(g,A),t.results)for(let R of Object.values(t.results)){let x=String(R).match(/^out\[(\d+)\]/);if(x){let q=parseInt(x[1],10);q!==g&&!i.has(q)&&await f(q)}}return l.delete(g),A}await f(r,s);let h={};for(let g of i.values())for(let[I,E]of Object.entries(g.results))E!==null?h[I]=E:I in h||(h[I]=null);let b=await(0,w.evaluateResultsCommon)(t,h,r,s,this.config.transform?.runner);return{...i.get(r),action:r,results:b}}};var fe=[{id:"EGLD",name:"eGold",decimals:18},{id:"EGLD-000000",name:"eGold",decimals:18},{id:"VIBE",name:"VIBE",decimals:18},{id:"VIBE-000000",name:"VIBE",decimals:18}],se=o=>fe.find(e=>e.id===o)||null;var Ae="EGLD-000000",y=class o{constructor(e,t){this.config=e;this.chain=t;this.serializer=new k,this.abi=new F(this.config,this.chain),this.results=new U(this.config,this.chain)}async createTransaction(e){let t=(0,T.getWarpActionByIndex)(e.warp,e.action),r=null;if(t.type==="transfer")r=await this.createTransferTransaction(e);else if(t.type==="contract")r=await this.createContractCallTransaction(e);else{if(t.type==="query")throw new Error("WarpMultiversxExecutor: Invalid action type for createTransactionForExecute; Use executeQuery instead");if(t.type==="collect")throw new Error("WarpMultiversxExecutor: Invalid action type for createTransactionForExecute; Use executeCollect instead")}if(!r)throw new Error(`WarpMultiversxExecutor: Invalid action type (${t.type})`);return r}async createTransferTransaction(e){let t=this.config.user?.wallets?.[e.chain.name];if(!t)throw new Error("WarpMultiversxExecutor: createTransfer - user address not set");let r=d.Address.newFromBech32(t),a=new d.TransactionsFactoryConfig({chainID:e.chain.chainId}),s=e.data?Buffer.from(this.serializer.stringToTyped(e.data).valueOf()):null;return new d.TransferTransactionsFactory({config:a}).createTransactionForTransfer(r,{receiver:d.Address.newFromBech32(e.destination),nativeAmount:e.value,tokenTransfers:this.toTokenTransfers(e.transfers),data:s?new Uint8Array(s):void 0})}async createContractCallTransaction(e){let t=this.config.user?.wallets?.[e.chain.name];if(!t)throw new Error("WarpMultiversxExecutor: createContractCall - user address not set");let r=(0,T.getWarpActionByIndex)(e.warp,e.action),a=d.Address.newFromBech32(t),s=e.args.map(i=>this.serializer.stringToTyped(i)),c=new d.TransactionsFactoryConfig({chainID:e.chain.chainId});return new d.SmartContractTransactionsFactory({config:c}).createTransactionForExecute(a,{contract:d.Address.newFromBech32(e.destination),function:"func"in r&&r.func||"",gasLimit:"gasLimit"in r?BigInt(r.gasLimit||0):0n,arguments:s,tokenTransfers:this.toTokenTransfers(e.transfers),nativeTransferAmount:e.value})}async executeQuery(e){let t=(0,T.getWarpActionByIndex)(e.warp,e.action);if(t.type!=="query")throw new Error(`WarpMultiversxExecutor: Invalid action type for executeQuery: ${t.type}`);let r=await this.abi.getAbiForAction(t),a=e.args.map(B=>this.serializer.stringToTyped(B)),s=o.getChainEntrypoint(e.chain,this.config.env,this.config),c=d.Address.newFromBech32(e.destination),i=s.createSmartContractController(r),l=i.createQuery({contract:c,function:t.func||"",arguments:a}),m=await i.runQuery(l),f=m.returnCode==="ok",h=new d.ArgSerializer,b=r.getEndpoint(m.function||t.func||""),C=(m.returnDataParts||[]).map(B=>Buffer.from(B)),g=h.buffersToValues(C,b.output),{values:I,valuesRaw:E,results:A}=await this.results.extractQueryResults(e.warp,g,e.action,e.resolvedInputs),R=(0,T.getNextInfo)(this.config,[],e.warp,e.action,A);return{success:f,warp:e.warp,action:e.action,user:this.config.user?.wallets?.[e.chain.name]||null,txHash:null,tx:null,next:R,values:I,valuesRaw:E,results:A,messages:(0,T.applyResultsToMessages)(e.warp,A)}}async preprocessInput(e,t,r,a){if(r==="asset"){let[s,c,i]=a.split(T.WarpConstants.ArgCompositeSeparator);if(i)return t;let l=new d.TokenComputer,m=M(s)?0n:l.extractNonceFromExtendedIdentifier(s),f=new d.Token({identifier:s,nonce:BigInt(m||0)});if(!l.isFungible(f))return t;let b=se(s),C=b?.decimals;if(C||(C=(await(await fetch(`${e.defaultApiUrl}/tokens/${s}`)).json()).decimals),!C)throw new Error(`WarpMultiversxExecutor: Decimals not found for token ${s}`);let g=(0,T.shiftBigintBy)(c,C),I=b?.name||s;return(0,T.asset)({chain:e.name,identifier:s,name:I,amount:g,decimals:C})}return t}static getChainEntrypoint(e,t,r){let a="warp-sdk",c=r?(0,T.getProviderUrl)(r,e.name,t,e.defaultApiUrl):e.defaultApiUrl;return t==="devnet"?new d.DevnetEntrypoint({url:c,kind:"api",clientName:a}):t==="testnet"?new d.TestnetEntrypoint({url:c,kind:"api",clientName:a}):new d.MainnetEntrypoint({url:c,kind:"api",clientName:a})}async signMessage(e,t){let r=d.UserSecretKey.fromString(t);return(await new d.UserSigner(r).sign(new Uint8Array(Buffer.from(e,"utf-8")))).toString()}toTokenTransfers(e){return e.map(t=>t.identifier===this.chain.nativeToken.identifier?{...t,identifier:Ae}:t).map(t=>{let a=new d.TokenComputer().extractNonceFromExtendedIdentifier(t.identifier);return new d.TokenTransfer({token:new d.Token({identifier:t.identifier,nonce:BigInt(a||0)}),amount:t.amount})})}};var D=class{constructor(e){this.config=e}async getContract(e,t){try{let s=await y.getChainEntrypoint(t,this.config.env).createNetworkProvider().doGetGeneric(`accounts/${e}`);return{address:e,owner:s.ownerAddress,verified:s.isVerified||!1}}catch(r){return ie.WarpLogger.error("WarpContractLoader: getContract error",r),null}}async getVerificationInfo(e,t){try{let s=await y.getChainEntrypoint(t,this.config.env).createNetworkProvider().doGetGeneric(`accounts/${e}/verification`);return{codeHash:s.codeHash,abi:s.source.abi}}catch(r){return ie.WarpLogger.error("WarpContractLoader: getVerificationInfo error",r),null}}};var F=class{constructor(e,t){this.config=e;this.chain=t;this.contractLoader=new D(this.config),this.cache=new N.WarpCache(this.config.cache?.type)}async createFromRaw(e){return JSON.parse(e)}async createFromTransaction(e){let t=await this.createFromRaw(e.data.toString());return t.meta={chain:this.chain.name,hash:e.hash,creator:e.sender.toBech32(),createdAt:new Date(e.timestamp*1e3).toISOString()},t}async createFromTransactionHash(e,t){let r=N.WarpCacheKey.WarpAbi(this.config.env,e);if(t){let c=this.cache.get(r);if(c)return N.WarpLogger.info(`WarpAbiBuilder (createFromTransactionHash): Warp abi found in cache: ${e}`),c}let s=y.getChainEntrypoint(this.chain,this.config.env).createNetworkProvider();try{let c=await s.getTransaction(e),i=await this.createFromTransaction(c);return t&&t.ttl&&i&&this.cache.set(r,i,t.ttl),i}catch(c){return N.WarpLogger.error("WarpAbiBuilder: Error creating from transaction hash",c),null}}async getAbiForAction(e){if(e.abi)return await this.fetchAbi(e);if(!e.address)throw new Error("WarpActionExecutor: Address not found");let t=await this.contractLoader.getVerificationInfo(e.address,this.chain);if(!t)throw new Error("WarpActionExecutor: Verification info not found");return Y.AbiRegistry.create(t.abi)}async fetchAbi(e){if(!e.abi)throw new Error("WarpActionExecutor: ABI not found");if(e.abi.startsWith(N.WarpConstants.IdentifierType.Hash)){let t=e.abi.split(N.WarpConstants.IdentifierParamSeparatorDefault)[1],r=await this.createFromTransactionHash(t);if(!r)throw new Error(`WarpActionExecutor: ABI not found for hash: ${e.abi}`);return Y.AbiRegistry.create(r.content)}else{let r=await(await fetch(e.abi)).json();return Y.AbiRegistry.create(r)}}};var _=require("@multiversx/sdk-core"),Z=require("@vleap/warps"),he=require("buffer");var z=class{constructor(e,t){this.config=e;this.chain=t;this.core=new Z.WarpBrandBuilder(e)}async createInscriptionTransaction(e){let t=this.config.user?.wallets?.[this.chain.name];if(!t)throw new Error("BrandBuilder: user address not set");let r=new _.TransactionsFactoryConfig({chainID:this.chain.chainId}),a=new _.TransferTransactionsFactory({config:r}),s=_.Address.newFromBech32(t),c=JSON.stringify(e);return await a.createTransactionForNativeTokenTransfer(s,{receiver:_.Address.newFromBech32(t),nativeAmount:BigInt(0),data:Uint8Array.from(he.Buffer.from(c))})}async createFromTransaction(e,t=!1){return await this.core.createFromRaw(e.data.toString(),t)}async createFromTransactionHash(e){let r=y.getChainEntrypoint(this.chain,this.config.env).createNetworkProvider();try{let a=await r.getTransaction(e);return this.createFromTransaction(a)}catch(a){return Z.WarpLogger.error("BrandBuilder: Error creating from transaction hash",a),null}}};var O=require("@multiversx/sdk-core"),V=require("@vleap/warps");var H=class extends V.WarpBuilder{constructor(t,r){super(t);this.config=t;this.chain=r;this.cache=new V.WarpCache(t.cache?.type),this.core=new V.WarpBuilder(t)}async createInscriptionTransaction(t){let r=this.config.user?.wallets?.[this.chain.name];if(!r)throw new Error("WarpBuilder: user address not set");let a=new O.TransactionsFactoryConfig({chainID:this.chain.chainId}),s=new O.TransferTransactionsFactory({config:a}),c=O.Address.newFromBech32(r),i=JSON.stringify(t),l=await s.createTransactionForTransfer(c,{receiver:O.Address.newFromBech32(r),nativeAmount:BigInt(0),data:Uint8Array.from(Buffer.from(i))});return l.gasLimit=l.gasLimit+BigInt(2e6),l}async createFromTransaction(t,r=!1){let a=await this.core.createFromRaw(t.data.toString(),r);return a.meta={chain:this.chain.name,hash:t.hash,creator:t.sender.toBech32(),createdAt:new Date(t.timestamp*1e3).toISOString()},a}async createFromTransactionHash(t,r){let a=V.WarpCacheKey.Warp(this.config.env,t);if(r){let i=this.cache.get(a);if(i)return V.WarpLogger.info(`WarpBuilder (createFromTransactionHash): Warp found in cache: ${t}`),i}let c=y.getChainEntrypoint(this.chain,this.config.env).createNetworkProvider();try{let i=await c.getTransaction(t),l=await this.createFromTransaction(i);return r&&r.ttl&&l&&this.cache.set(a,l,r.ttl),l}catch(i){return V.WarpLogger.error("WarpBuilder: Error creating from transaction hash",i),null}}};var ee=require("@multiversx/sdk-core");var Q=class{constructor(e,t){this.config=e;this.chain=t}async getAccount(e){let r=await y.getChainEntrypoint(this.chain,this.config.env,this.config).createNetworkProvider().getAccount(ee.Address.newFromBech32(e));return{chain:this.chain.name,address:r.address.toBech32(),balance:r.balance}}async getAccountAssets(e){let t=y.getChainEntrypoint(this.chain,this.config.env,this.config).createNetworkProvider(),r=t.getAccount(ee.Address.newFromBech32(e)),a=t.getFungibleTokensOfAccount(ee.Address.newFromBech32(e)),[s,c]=await Promise.all([r,a]),i=s.balance>0?[{...this.chain.nativeToken,amount:s.balance}]:[];return i.push(...c.map(l=>({chain:this.chain.name,identifier:l.token.identifier,name:l.raw.name,amount:l.amount,decimals:l.raw.decimals,logoUrl:l.raw.assets?.pngUrl||""}))),i}async getAsset(e){let t=y.getChainEntrypoint(this.chain,this.config.env,this.config).createNetworkProvider(),r=X(e),a=await t.doGetGeneric(`tokens/${r}`);return{chain:this.chain.name,identifier:a.identifier,name:a.name,amount:a.amount,decimals:a.decimals,logoUrl:a.assets?.pngUrl||""}}async getAction(e,t=!1){let r=y.getChainEntrypoint(this.chain,this.config.env,this.config),a=t?await r.awaitCompletedTransaction(e):await r.getTransaction(e);return{chain:this.chain.name,id:a.hash,receiver:a.receiver.toBech32(),sender:a.sender.toBech32(),value:a.value,function:a.function,status:this.toActionStatus(a),createdAt:this.toActionCreatedAt(a),error:a?.smartContractResults.map(s=>s.raw.returnMessage)[0]||null,tx:a}}async getAccountActions(e,t){let r=y.getChainEntrypoint(this.chain,this.config.env,this.config).createNetworkProvider(),a=`accounts/${e}/transactions`,s=new URLSearchParams,c=t?.size||25,i=t?.page||0;if(i>0){let m=i*c;s.append("from",m.toString())}return c!==25&&s.append("size",c.toString()),s.toString()&&(a+=`?${s.toString()}`),(await r.doGetGeneric(a)).map(m=>({chain:this.chain.name,id:m.txHash,receiver:m.receiver,sender:m.sender,value:m.value,function:m.function,status:this.toActionStatus(m),createdAt:this.toActionCreatedAt(m)}))}toActionStatus(e){return e.status.isSuccessful()?"success":e.status.isFailed()?"failed":"pending"}toActionCreatedAt(e){return new Date(e.timestamp||e.timestamp*1e3).toISOString()}};var Ie={Egld:{Identifier:"EGLD",EsdtIdentifier:"EGLD-000000",DisplayName:"eGold",Decimals:18}},ge=(r=>(r.MultiversxExplorer="multiversx_explorer",r.MultiversxExplorerDevnet="multiversx_explorer_devnet",r.MultiversxExplorerTestnet="multiversx_explorer_testnet",r))(ge||{}),ye=(r=>(r.VibechainExplorer="vibechain_explorer",r.VibechainExplorerDevnet="vibechain_explorer_devnet",r.VibechainExplorerTestnet="vibechain_explorer_testnet",r))(ye||{}),oe={multiversx:{mainnet:["multiversx_explorer"],testnet:["multiversx_explorer_testnet"],devnet:["multiversx_explorer_devnet"]},vibechain:{mainnet:["vibechain_explorer"],testnet:["vibechain_explorer_testnet"],devnet:["vibechain_explorer_devnet"]}},P={multiversx_explorer:"https://explorer.multiversx.com",multiversx_explorer_devnet:"https://devnet-explorer.multiversx.com",multiversx_explorer_testnet:"https://testnet-explorer.multiversx.com",vibechain_explorer:"https://vibeox-explorer.multiversx.com",vibechain_explorer_devnet:"https://vibeox-explorer.multiversx.com",vibechain_explorer_testnet:"https://vibeox-explorer.multiversx.com"};var G=class{constructor(e,t){this.chain=e;this.config=t}getExplorers(){let e=oe[this.chain];if(!e)return["multiversx_explorer"];let t=e[this.config.env];return t||["multiversx_explorer"]}getPrimaryExplorer(){return this.getExplorers()[0]}getExplorerUrlByName(e){let t=this.config.preferences?.explorers?.[this.chain];if(t&&!e){let s=P[t];if(s)return s}if(e){let s=P[e];if(s)return s}let r=this.getPrimaryExplorer();return P[r]||P[r]}getAccountUrl(e,t){return`${this.getExplorerUrlByName(t)}/accounts/${e}`}getTransactionUrl(e,t){return`${this.getExplorerUrlByName(t)}/transactions/${e}`}getBlockUrl(e,t){return`${this.getExplorerUrlByName(t)}/blocks/${e}`}getAssetUrl(e,t){return`${this.getExplorerUrlByName(t)}/tokens/${e}`}getContractUrl(e,t){return`${this.getExplorerUrlByName(t)}/accounts/${e}`}getAllExplorers(){return this.getExplorers()}getExplorerByName(e){return this.getExplorers().find(r=>r.toLowerCase()===e.toLowerCase())}getAccountUrls(e){let t=this.getAllExplorers(),r={};return t.forEach(a=>{let s=P[a];s&&(r[a]=`${s}/accounts/${e}`)}),r}getTransactionUrls(e){let t=this.getAllExplorers(),r={};return t.forEach(a=>{let s=P[a];s&&(r[a]=`${s}/transactions/${e}`)}),r}};var u=require("@multiversx/sdk-core"),S=require("@vleap/warps");var ce={buildInfo:{rustc:{version:"1.86.0",commitHash:"05f9846f893b09a1be1fc8560e33fc3c815cfecb",commitDate:"2025-03-31",channel:"Stable",short:"rustc 1.86.0 (05f9846f8 2025-03-31)"},contractCrate:{name:"registry",version:"0.0.1"},framework:{name:"multiversx-sc",version:"0.51.1"}},name:"RegistryContract",constructor:{inputs:[{name:"unit_price",type:"BigUint"},{name:"vault",type:"Address"}],outputs:[]},upgradeConstructor:{inputs:[],outputs:[]},endpoints:[{name:"registerWarp",mutability:"mutable",payableInTokens:["EGLD"],inputs:[{name:"hash",type:"bytes"},{name:"alias_opt",type:"optional<bytes>",multi_arg:!0},{name:"brand_opt",type:"optional<bytes>",multi_arg:!0}],outputs:[],allow_multiple_var_args:!0},{name:"unregisterWarp",mutability:"mutable",inputs:[{name:"warp",type:"bytes"}],outputs:[]},{name:"upgradeWarp",mutability:"mutable",payableInTokens:["EGLD"],inputs:[{name:"alias",type:"bytes"},{name:"new_warp",type:"bytes"}],outputs:[]},{name:"setWarpAlias",mutability:"mutable",payableInTokens:["EGLD"],inputs:[{name:"hash",type:"bytes"},{name:"alias",type:"bytes"}],outputs:[]},{name:"forceRemoveAlias",mutability:"mutable",inputs:[{name:"hash",type:"bytes"}],outputs:[]},{name:"verifyWarp",mutability:"mutable",inputs:[{name:"warp",type:"bytes"}],outputs:[]},{name:"transferOwnership",mutability:"mutable",inputs:[{name:"warp",type:"bytes"},{name:"new_owner",type:"Address"}],outputs:[]},{name:"getUserWarps",mutability:"readonly",inputs:[{name:"address",type:"Address"}],outputs:[{type:"variadic<InfoView>",multi_result:!0}]},{name:"getInfoByAlias",mutability:"readonly",inputs:[{name:"alias",type:"bytes"}],outputs:[{type:"InfoView"}]},{name:"getInfoByHash",mutability:"readonly",inputs:[{name:"hash",type:"bytes"}],outputs:[{type:"InfoView"}]},{name:"setVault",onlyOwner:!0,mutability:"mutable",inputs:[{name:"vault",type:"Address"}],outputs:[]},{name:"setUnitPrice",onlyOwner:!0,mutability:"mutable",inputs:[{name:"amount",type:"BigUint"}],outputs:[]},{name:"addAdmin",onlyOwner:!0,mutability:"mutable",inputs:[{name:"address",type:"Address"}],outputs:[]},{name:"removeAdmin",onlyOwner:!0,mutability:"mutable",inputs:[{name:"address",type:"Address"}],outputs:[]},{name:"getConfig",mutability:"readonly",inputs:[],outputs:[{type:"ConfigView"}]},{name:"registerBrand",mutability:"mutable",payableInTokens:["EGLD"],inputs:[{name:"hash",type:"bytes"}],outputs:[]},{name:"brandWarp",mutability:"mutable",payableInTokens:["EGLD"],inputs:[{name:"warp",type:"bytes"},{name:"brand",type:"bytes"}],outputs:[]},{name:"getUserBrands",mutability:"readonly",inputs:[{name:"user",type:"Address"}],outputs:[{type:"variadic<bytes>",multi_result:!0}]},{name:"setChain",onlyOwner:!0,mutability:"mutable",inputs:[{name:"name",type:"bytes"},{name:"display_name",type:"bytes"},{name:"chain_id",type:"bytes"},{name:"block_time",type:"u32"},{name:"address_hrp",type:"bytes"},{name:"api_url",type:"bytes"},{name:"explorer_url",type:"bytes"},{name:"native_token",type:"bytes"}],outputs:[]},{name:"removeChain",onlyOwner:!0,mutability:"mutable",inputs:[{name:"name",type:"bytes"}],outputs:[]},{name:"getChain",mutability:"readonly",inputs:[{name:"name",type:"bytes"}],outputs:[{type:"ChainView"}]},{name:"getChains",mutability:"readonly",inputs:[],outputs:[{type:"variadic<ChainView>",multi_result:!0}]}],events:[{identifier:"warpRegistered",inputs:[{name:"hash",type:"bytes",indexed:!0},{name:"alias",type:"bytes",indexed:!0},{name:"trust",type:"bytes",indexed:!0}]},{identifier:"warpUnregistered",inputs:[{name:"hash",type:"bytes",indexed:!0}]},{identifier:"warpUpgraded",inputs:[{name:"alias",type:"bytes",indexed:!0},{name:"new_warp",type:"bytes",indexed:!0},{name:"trust",type:"bytes",indexed:!0}]},{identifier:"warpVerified",inputs:[{name:"hash",type:"bytes",indexed:!0}]},{identifier:"aliasUpdated",inputs:[{name:"hash",type:"bytes",indexed:!0},{name:"alias",type:"bytes",indexed:!0}]},{identifier:"ownershipTransferred",inputs:[{name:"warp",type:"bytes",indexed:!0},{name:"old_owner",type:"Address",indexed:!0},{name:"new_owner",type:"Address",indexed:!0}]}],esdtAttributes:[],hasCallback:!1,types:{ChainView:{type:"struct",fields:[{name:"name",type:"bytes"},{name:"display_name",type:"bytes"},{name:"chain_id",type:"bytes"},{name:"block_time",type:"u32"},{name:"address_hrp",type:"bytes"},{name:"api_url",type:"bytes"},{name:"explorer_url",type:"bytes"},{name:"native_token",type:"bytes"}]},ConfigView:{type:"struct",fields:[{name:"unit_price",type:"BigUint"},{name:"admins",type:"List<Address>"}]},InfoView:{type:"struct",fields:[{name:"hash",type:"bytes"},{name:"alias",type:"Option<bytes>"},{name:"trust",type:"bytes"},{name:"owner",type:"Address"},{name:"created_at",type:"u64"},{name:"upgraded_at",type:"u64"},{name:"brand",type:"Option<bytes>"},{name:"upgrade",type:"Option<bytes>"}]}}};var v=o=>{if(o==="devnet")return"erd1qqqqqqqqqqqqqpgqje2f99vr6r7sk54thg03c9suzcvwr4nfl3tsfkdl36";if(o==="testnet")throw new Error("Multiversx testnet is not supported");return"erd1qqqqqqqqqqqqqpgq3mrpj3u6q7tejv6d7eqhnyd27n9v5c5tl3ts08mffe"};var te=o=>({hash:o.hash.toString("hex"),alias:o.alias?.toString()||null,trust:o.trust.toString(),owner:o.owner.toString(),createdAt:o.created_at.toNumber(),upgradedAt:o.upgraded_at?.toNumber(),brand:o.brand?.toString("hex")||null,upgrade:o.upgrade?.toString("hex")||null}),we=o=>({unitPrice:BigInt(o.unit_price.toString()),admins:o.admins.map(e=>e.toBech32())});var j=class{constructor(e,t){this.config=e;this.chain=t;this.cache=new S.WarpCache(e.cache?.type),this.registryConfig={unitPrice:BigInt(0),admins:[]},this.userWallet=this.config.user?.wallets?.[this.chain.name]||null}async init(){await this.loadRegistryConfigs()}getRegistryConfig(){return this.registryConfig}async createWarpRegisterTransaction(e,t,r){if(this.registryConfig.unitPrice===BigInt(0))throw new Error("WarpRegistry: config not loaded. forgot to call init()?");if(!this.userWallet)throw new Error("WarpRegistry: user address not set");let a=u.Address.newFromBech32(this.userWallet),s=()=>this.isCurrentUserAdmin()?BigInt(0):t&&r?this.registryConfig.unitPrice*BigInt(3):t?this.registryConfig.unitPrice*BigInt(2):this.registryConfig.unitPrice,c=()=>t&&r?[u.BytesValue.fromHex(e),u.BytesValue.fromUTF8(t),u.BytesValue.fromHex(r)]:t?[u.BytesValue.fromHex(e),u.BytesValue.fromUTF8(t)]:[u.BytesValue.fromHex(e)];return await this.getFactory().createTransactionForExecute(a,{contract:u.Address.newFromBech32(v(this.config.env)),function:"registerWarp",gasLimit:BigInt(1e7),nativeTransferAmount:s(),arguments:c()})}async createWarpUnregisterTransaction(e){if(!this.userWallet)throw new Error("WarpRegistry: user address not set");let t=u.Address.newFromBech32(this.userWallet);return await this.getFactory().createTransactionForExecute(t,{contract:u.Address.newFromBech32(v(this.config.env)),function:"unregisterWarp",gasLimit:BigInt(1e7),arguments:[u.BytesValue.fromHex(e)]})}async createWarpUpgradeTransaction(e,t){if(this.registryConfig.unitPrice===BigInt(0))throw new Error("WarpRegistry: config not loaded. forgot to call init()?");if(!this.userWallet)throw new Error("WarpRegistry: user address not set");let r=u.Address.newFromBech32(this.userWallet);return await this.getFactory().createTransactionForExecute(r,{contract:u.Address.newFromBech32(v(this.config.env)),function:"upgradeWarp",gasLimit:BigInt(1e7),nativeTransferAmount:this.isCurrentUserAdmin()?void 0:this.registryConfig.unitPrice,arguments:[u.BytesValue.fromUTF8(e),u.BytesValue.fromHex(t)]})}async createWarpAliasSetTransaction(e,t){if(!this.userWallet)throw new Error("WarpRegistry: user address not set");let r=u.Address.newFromBech32(this.userWallet);return await this.getFactory().createTransactionForExecute(r,{contract:u.Address.newFromBech32(v(this.config.env)),function:"setWarpAlias",gasLimit:BigInt(1e7),nativeTransferAmount:this.isCurrentUserAdmin()?void 0:this.registryConfig.unitPrice,arguments:[u.BytesValue.fromHex(e),u.BytesValue.fromUTF8(t)]})}async createWarpVerifyTransaction(e){if(!this.userWallet)throw new Error("WarpRegistry: user address not set");let t=u.Address.newFromBech32(this.userWallet);return await this.getFactory().createTransactionForExecute(t,{contract:u.Address.newFromBech32(v(this.config.env)),function:"verifyWarp",gasLimit:BigInt(1e7),arguments:[u.BytesValue.fromHex(e)]})}async createWarpTransferOwnershipTransaction(e,t){if(!this.userWallet)throw new Error("WarpRegistry: user address not set");let r=u.Address.newFromBech32(this.userWallet);return await this.getFactory().createTransactionForExecute(r,{contract:u.Address.newFromBech32(v(this.config.env)),function:"transferOwnership",gasLimit:BigInt(1e7),arguments:[u.BytesValue.fromHex(e),new u.AddressValue(new u.Address(t))]})}async createBrandRegisterTransaction(e){if(this.registryConfig.unitPrice===BigInt(0))throw new Error("WarpRegistry: config not loaded. forgot to call init()?");if(!this.userWallet)throw new Error("WarpRegistry: user address not set");let t=u.Address.newFromBech32(this.userWallet);return await this.getFactory().createTransactionForExecute(t,{contract:u.Address.newFromBech32(v(this.config.env)),function:"registerBrand",gasLimit:BigInt(1e7),nativeTransferAmount:this.isCurrentUserAdmin()?void 0:this.registryConfig.unitPrice,arguments:[u.BytesValue.fromHex(e)]})}async createWarpBrandingTransaction(e,t){if(!this.userWallet)throw new Error("WarpRegistry: user address not set");let r=u.Address.newFromBech32(this.userWallet);return await this.getFactory().createTransactionForExecute(r,{contract:u.Address.newFromBech32(v(this.config.env)),function:"brandWarp",gasLimit:BigInt(1e7),nativeTransferAmount:this.isCurrentUserAdmin()?void 0:this.registryConfig.unitPrice,arguments:[u.BytesValue.fromHex(e),u.BytesValue.fromHex(t)]})}async getInfoByAlias(e,t){try{let r=S.WarpCacheKey.RegistryInfo(this.config.env,e),a=t?this.cache.get(r):null;if(a)return S.WarpLogger.info(`WarpRegistry (getInfoByAlias): RegistryInfo found in cache: ${e}`),a;let s=u.Address.newFromBech32(v(this.config.env)),c=this.getController(),i=c.createQuery({contract:s,function:"getInfoByAlias",arguments:[u.BytesValue.fromUTF8(e)]}),l=await c.runQuery(i),[m]=c.parseQueryResponse(l),f=m?te(m):null,h=f?.brand?await this.fetchBrand(f.brand):null;return t&&t.ttl&&this.cache.set(r,{registryInfo:f,brand:h},t.ttl),{registryInfo:f,brand:h}}catch{return{registryInfo:null,brand:null}}}async getInfoByHash(e,t){try{let r=S.WarpCacheKey.RegistryInfo(this.config.env,e);if(t){let h=this.cache.get(r);if(h)return S.WarpLogger.info(`WarpRegistry (getInfoByHash): RegistryInfo found in cache: ${e}`),h}let a=u.Address.newFromBech32(v(this.config.env)),s=this.getController(),c=s.createQuery({contract:a,function:"getInfoByHash",arguments:[u.BytesValue.fromHex(e)]}),i=await s.runQuery(c),[l]=s.parseQueryResponse(i),m=l?te(l):null,f=m?.brand?await this.fetchBrand(m.brand):null;return t&&t.ttl&&this.cache.set(r,{registryInfo:m,brand:f},t.ttl),{registryInfo:m,brand:f}}catch{return{registryInfo:null,brand:null}}}async getUserWarpRegistryInfos(e){try{let t=e||this.userWallet;if(!t)throw new Error("WarpRegistry: user address not set");let r=u.Address.newFromBech32(v(this.config.env)),a=this.getController(),s=a.createQuery({contract:r,function:"getUserWarps",arguments:[new u.AddressValue(new u.Address(t))]}),c=await a.runQuery(s),[i]=a.parseQueryResponse(c);return i.map(te)}catch{return[]}}async getUserBrands(e){try{let t=e||this.userWallet;if(!t)throw new Error("WarpRegistry: user address not set");let r=u.Address.newFromBech32(v(this.config.env)),a=this.getController(),s=a.createQuery({contract:r,function:"getUserBrands",arguments:[new u.AddressValue(new u.Address(t))]}),c=await a.runQuery(s),[i]=a.parseQueryResponse(c),l=i.map(h=>h.toString("hex")),m={ttl:365*24*60*60};return(await Promise.all(l.map(h=>this.fetchBrand(h,m)))).filter(h=>h!==null)}catch{return[]}}async fetchBrand(e,t){let r=S.WarpCacheKey.Brand(this.config.env,e),a=t?this.cache.get(r):null;if(a)return S.WarpLogger.info(`WarpRegistry (fetchBrand): Brand found in cache: ${e}`),a;let c=y.getChainEntrypoint(this.chain,this.config.env).createNetworkProvider();try{let i=await c.getTransaction(e),l=JSON.parse(i.data.toString());return l.meta={hash:i.hash,creator:i.sender.toBech32(),createdAt:new Date(i.timestamp*1e3).toISOString()},t&&t.ttl&&this.cache.set(r,l,t.ttl),l}catch{return null}}async loadRegistryConfigs(){let e=u.Address.newFromBech32(v(this.config.env)),t=this.getController(),[r]=await t.query({contract:e,function:"getConfig",arguments:[]}),a=r?we(r):null;this.registryConfig=a||{unitPrice:BigInt(0),admins:[]}}getFactory(){let e=new u.TransactionsFactoryConfig({chainID:this.chain.chainId}),t=u.AbiRegistry.create(ce);return new u.SmartContractTransactionsFactory({config:e,abi:t})}getController(){let e=y.getChainEntrypoint(this.chain,this.config.env),t=u.AbiRegistry.create(ce);return e.createSmartContractController(t)}isCurrentUserAdmin(){return!!this.userWallet&&this.registryConfig.admins.includes(this.userWallet)}};var K=(o,e,t)=>(r,a)=>{let s=t[r.env];return{chain:o,chainInfo:s,prefix:e,builder:()=>new H(r,s),executor:new y(r,s),results:new U(r,s),serializer:new k,registry:new j(r,s),explorer:new G(o,r),abiBuilder:()=>new F(r,s),brandBuilder:()=>new z(r,s),dataLoader:new Q(r,s),registerTypes:c=>{c.registerType("token",{stringToNative:i=>i,nativeToString:i=>`token:${i}`}),c.registerType("codemeta",{stringToNative:i=>i,nativeToString:i=>`codemeta:${i}`})}}};var re={chain:L.WarpChainName.Multiversx,identifier:"EGLD",name:"eGold",decimals:18,logoUrl:"https://vleap.ai/images/tokens/egld.svg"},pe=K(L.WarpChainName.Multiversx,"mvx",{mainnet:{name:L.WarpChainName.Multiversx,displayName:"MultiversX",chainId:"1",blockTime:6e3,addressHrp:"erd",defaultApiUrl:"https://api.multiversx.com",nativeToken:re},testnet:{name:L.WarpChainName.Multiversx,displayName:"MultiversX Testnet",chainId:"T",blockTime:6e3,addressHrp:"erd",defaultApiUrl:"https://testnet-api.multiversx.com",nativeToken:re},devnet:{name:L.WarpChainName.Multiversx,displayName:"MultiversX Devnet",chainId:"D",blockTime:6e3,addressHrp:"erd",defaultApiUrl:"https://devnet-api.multiversx.com",nativeToken:re}});var ne=require("@vleap/warps");var Ce={chain:ne.WarpChainName.Vibechain,identifier:"VIBE",name:"VIBE",decimals:18,logoUrl:"https://vleap.ai/images/tokens/vibe.svg"},ue={name:ne.WarpChainName.Vibechain,displayName:"VibeChain",chainId:"V",blockTime:600,addressHrp:"vibe",defaultApiUrl:"https://vibeox-api.multiversx.com",nativeToken:Ce},le=K(ne.WarpChainName.Vibechain,"vibe",{mainnet:ue,testnet:ue,devnet:ue});var Ne=(o,e)=>[pe(o,e),le(o,e)],Ve=()=>[me.WarpChainName.Multiversx,me.WarpChainName.Vibechain];var p=require("@multiversx/sdk-core"),Se=(o,e)=>o?p.OptionValue.newProvided(o):e?p.OptionValue.newMissingTyped(e):p.OptionValue.newMissing(),ke=(o,e)=>o?new p.OptionalValue(o.getType(),o):e?new p.OptionalValue(e):p.OptionalValue.newMissing(),Fe=o=>{if(o.length===0)throw new Error("Cannot create a list from an empty array");let e=o[0].getType();return new p.List(e,o)},Re=o=>p.VariadicValue.fromItems(...o),Pe=o=>{let e=o.map(t=>t.getType());return new p.CompositeValue(new p.CompositeType(...e),o)},Ue=o=>p.StringValue.fromUTF8(o),_e=o=>new p.U8Value(o),Oe=o=>new p.U16Value(o),Me=o=>new p.U32Value(o),$e=o=>new p.U64Value(o),Le=o=>new p.BigUIntValue(BigInt(o)),qe=o=>new p.BooleanValue(o),De=o=>new p.AddressValue(p.Address.newFromBech32(o)),ze=o=>new p.TokenIdentifierValue(o),He=o=>p.BytesValue.fromHex(o),Qe=o=>new p.Struct(new p.StructType("EsdtTokenPayment",[new p.FieldDefinition("token_identifier","",new p.TokenIdentifierType),new p.FieldDefinition("token_nonce","",new p.U64Type),new p.FieldDefinition("amount","",new p.BigUIntType)]),[new p.Field(new p.TokenIdentifierValue(o.token.identifier),"token_identifier"),new p.Field(new p.U64Value(BigInt(o.token.nonce)),"token_nonce"),new p.Field(new p.BigUIntValue(BigInt(o.amount)),"amount")]),Ge=o=>new p.CodeMetadataValue(p.CodeMetadata.newFromBytes(Uint8Array.from(Buffer.from(o,"hex")))),je=()=>new p.NothingValue;0&&(module.exports={ExplorerUrls,KnownTokens,MultiversxExplorers,MultiversxExplorersConfig,NativeTokenEgld,NativeTokenVibe,VibechainExplorers,WarpMultiversxAbiBuilder,WarpMultiversxBrandBuilder,WarpMultiversxBuilder,WarpMultiversxConstants,WarpMultiversxContractLoader,WarpMultiversxDataLoader,WarpMultiversxExecutor,WarpMultiversxExplorer,WarpMultiversxRegistry,WarpMultiversxResults,WarpMultiversxSerializer,address_value,asset_value,biguint_value,boolean_value,codemeta_value,composite_value,createMultiversxAdapter,findKnownTokenById,getAllMultiversxAdapters,getAllMultiversxChainNames,getMultiversxAdapter,getMultiversxRegistryAddress,getVibechainAdapter,hex_value,list_value,nothing_value,option_value,optional_value,string_value,token_value,u16_value,u32_value,u64_value,u8_value,variadic_value});
|
|
1
|
+
"use strict";var ie=Object.defineProperty;var ve=Object.getOwnPropertyDescriptor;var be=Object.getOwnPropertyNames;var Ee=Object.prototype.hasOwnProperty;var Ae=(o,e)=>{for(var t in e)ie(o,t,{get:e[t],enumerable:!0})},Be=(o,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of be(e))!Ee.call(o,a)&&a!==t&&ie(o,a,{get:()=>e[a],enumerable:!(r=ve(e,a))||r.enumerable});return o};var Ie=o=>Be(ie({},"__esModule",{value:!0}),o);var Ye={};Ae(Ye,{ExplorerUrls:()=>_,KnownTokens:()=>we,MultiversxExplorers:()=>Ce,MultiversxExplorersConfig:()=>pe,NativeTokenEgld:()=>ae,NativeTokenVibe:()=>Te,VibechainExplorers:()=>xe,WarpMultiversxAbiBuilder:()=>R,WarpMultiversxBrandBuilder:()=>Q,WarpMultiversxBuilder:()=>j,WarpMultiversxConstants:()=>Ve,WarpMultiversxContractLoader:()=>G,WarpMultiversxDataLoader:()=>K,WarpMultiversxExecutor:()=>y,WarpMultiversxExplorer:()=>J,WarpMultiversxRegistry:()=>X,WarpMultiversxResults:()=>O,WarpMultiversxSerializer:()=>F,address_value:()=>Ge,asset_value:()=>Ke,biguint_value:()=>ze,boolean_value:()=>He,codemeta_value:()=>Je,composite_value:()=>Oe,createMultiversxAdapter:()=>Y,findKnownTokenById:()=>ce,getAllMultiversxAdapters:()=>ke,getAllMultiversxChainNames:()=>Fe,getMultiversxAdapter:()=>ue,getMultiversxRegistryAddress:()=>W,getVibechainAdapter:()=>de,hex_value:()=>je,list_value:()=>Pe,nothing_value:()=>Xe,option_value:()=>Re,optional_value:()=>Ue,string_value:()=>Me,token_value:()=>Qe,u16_value:()=>Le,u32_value:()=>De,u64_value:()=>qe,u8_value:()=>$e,variadic_value:()=>_e});module.exports=Ie(Ye);var he=require("@vleap/warps");var z=require("@vleap/warps");var V=require("@multiversx/sdk-core"),A=require("@vleap/warps");var oe=require("@vleap/warps");var f=require("@multiversx/sdk-core"),N=require("@vleap/warps");var D=require("@multiversx/sdk-core"),w=require("@vleap/warps");var n=require("@multiversx/sdk-core"),x=require("@vleap/warps");var L=o=>!o.includes("-"),ee=o=>L(o)?`${o}-000000`:o;var fe=new RegExp(`${x.WarpConstants.ArgParamsSeparator}(.*)`),F=class{constructor(){this.coreSerializer=new x.WarpSerializer}typedToString(e){let t=e.getType();if(t.hasExactClass(n.OptionType.ClassName)||e.hasClassOrSuperclass(n.OptionValue.ClassName))return e.isSet()?`option:${this.typedToString(e.getTypedValue())}`:"option:null";if(t.hasExactClass(n.OptionalType.ClassName)||e.hasClassOrSuperclass(n.OptionalValue.ClassName))return e.isSet()?`optional:${this.typedToString(e.getTypedValue())}`:"optional:null";if(t.hasExactClass(n.ListType.ClassName)||e.hasClassOrSuperclass(n.List.ClassName)){let r=e.getItems(),s=r.map(i=>this.typedToString(i).split(x.WarpConstants.ArgParamsSeparator)[0])[0],c=r.map(i=>this.typedToString(i).split(x.WarpConstants.ArgParamsSeparator)[1]);return`list:${s}:${c.join(",")}`}if(t.hasExactClass(n.VariadicType.ClassName)||e.hasClassOrSuperclass(n.VariadicValue.ClassName)){let r=e.getItems(),s=r.map(i=>this.typedToString(i).split(x.WarpConstants.ArgParamsSeparator)[0])[0],c=r.map(i=>this.typedToString(i).split(x.WarpConstants.ArgParamsSeparator)[1]);return`variadic:${s}:${c.join(",")}`}if(t.hasExactClass(n.CompositeType.ClassName)||e.hasClassOrSuperclass(n.CompositeValue.ClassName)){let r=e.getItems(),a=r.map(u=>this.typedToString(u).split(x.WarpConstants.ArgParamsSeparator)[0]),s=r.map(u=>this.typedToString(u).split(x.WarpConstants.ArgParamsSeparator)[1]),c=a.join(x.WarpConstants.ArgCompositeSeparator),i=s.join(x.WarpConstants.ArgCompositeSeparator);return`composite(${c}):${i}`}if(t.hasExactClass(n.BigUIntType.ClassName)||e.hasClassOrSuperclass(n.BigUIntValue.ClassName)||t.getName()==="BigUint")return`biguint:${BigInt(e.valueOf().toFixed())}`;if(t.hasExactClass(n.U8Type.ClassName)||e.hasClassOrSuperclass(n.U8Value.ClassName))return`uint8:${e.valueOf().toNumber()}`;if(t.hasExactClass(n.U16Type.ClassName)||e.hasClassOrSuperclass(n.U16Value.ClassName))return`uint16:${e.valueOf().toNumber()}`;if(t.hasExactClass(n.U32Type.ClassName)||e.hasClassOrSuperclass(n.U32Value.ClassName))return`uint32:${e.valueOf().toNumber()}`;if(t.hasExactClass(n.U64Type.ClassName)||e.hasClassOrSuperclass(n.U64Value.ClassName))return`uint64:${BigInt(e.valueOf().toFixed())}`;if(t.hasExactClass(n.StringType.ClassName)||e.hasClassOrSuperclass(n.StringValue.ClassName))return`string:${e.valueOf()}`;if(t.hasExactClass(n.BooleanType.ClassName)||e.hasClassOrSuperclass(n.BooleanValue.ClassName))return`bool:${e.valueOf()}`;if(t.hasExactClass(n.AddressType.ClassName)||e.hasClassOrSuperclass(n.AddressValue.ClassName))return`address:${e.valueOf().toBech32()}`;if(t.hasExactClass(n.TokenIdentifierType.ClassName)||e.hasClassOrSuperclass(n.TokenIdentifierValue.ClassName))return`token:${e.valueOf()}`;if(t.hasExactClass(n.BytesType.ClassName)||e.hasClassOrSuperclass(n.BytesValue.ClassName))return`hex:${e.valueOf().toString("hex")}`;if(t.hasExactClass(n.CodeMetadataType.ClassName)||e.hasClassOrSuperclass(n.CodeMetadataValue.ClassName))return`codemeta:${e.valueOf().toString()}`;if(t.getName()==="EsdtTokenPayment"){let r=e.getFieldValue("token_identifier").valueOf(),a=e.getFieldValue("token_nonce").valueOf(),s=e.getFieldValue("amount").valueOf();return`asset:${new n.TokenComputer().computeExtendedIdentifier(new n.Token({identifier:r,nonce:BigInt(a)}))}|${s}`}throw new Error(`WarpArgSerializer (typedToString): Unsupported input type: ${e.getClassName()}`)}typedToNative(e){let t=this.typedToString(e);return this.coreSerializer.stringToNative(t)}nativeToTyped(e,t){let r=this.coreSerializer.nativeToString(e,t);return this.stringToTyped(r)}nativeToType(e){if(e.startsWith("composite")){let t=e.match(/\(([^)]+)\)/)?.[1];return new n.CompositeType(...t.split(x.WarpConstants.ArgCompositeSeparator).map(r=>this.nativeToType(r)))}if(e==="string")return new n.StringType;if(e==="uint8")return new n.U8Type;if(e==="uint16")return new n.U16Type;if(e==="uint32")return new n.U32Type;if(e==="uint64")return new n.U64Type;if(e==="biguint")return new n.BigUIntType;if(e==="bool")return new n.BooleanType;if(e==="address")return new n.AddressType;if(e==="token")return new n.TokenIdentifierType;if(e==="hex")return new n.BytesType;if(e==="codemeta")return new n.CodeMetadataType;if(e==="asset")return new n.StructType("EsdtTokenPayment",[new n.FieldDefinition("token_identifier","",new n.TokenIdentifierType),new n.FieldDefinition("token_nonce","",new n.U64Type),new n.FieldDefinition("amount","",new n.BigUIntType)]);throw new Error(`WarpArgSerializer (nativeToType): Unsupported input type: ${e}`)}stringToTyped(e){let[t,r]=e.split(/:(.*)/,2);if(t==="null"||t===null)return new n.NothingValue;if(t==="option"){let a=this.stringToTyped(r);return a instanceof n.NothingValue?n.OptionValue.newMissingTyped(a.getType()):n.OptionValue.newProvided(a)}if(t==="optional"){let a=this.stringToTyped(r);return a instanceof n.NothingValue?n.OptionalValue.newMissing():new n.OptionalValue(a.getType(),a)}if(t==="list"){let[a,s]=r.split(fe,2),i=s.split(",").map(u=>this.stringToTyped(`${a}:${u}`));return new n.List(this.nativeToType(a),i)}if(t==="variadic"){let[a,s]=r.split(fe,2),i=s.split(",").map(u=>this.stringToTyped(`${a}:${u}`));return new n.VariadicValue(new n.VariadicType(this.nativeToType(a)),i)}if(t.startsWith("composite")){let a=t.match(/\(([^)]+)\)/)?.[1],s=r.split(x.WarpConstants.ArgCompositeSeparator),c=a.split(x.WarpConstants.ArgCompositeSeparator),i=s.map((m,h)=>this.stringToTyped(`${c[h]}:${m}`)),u=i.map(m=>m.getType());return new n.CompositeValue(new n.CompositeType(...u),i)}if(t==="string")return r?n.StringValue.fromUTF8(r):new n.NothingValue;if(t==="uint8")return r?new n.U8Value(Number(r)):new n.NothingValue;if(t==="uint16")return r?new n.U16Value(Number(r)):new n.NothingValue;if(t==="uint32")return r?new n.U32Value(Number(r)):new n.NothingValue;if(t==="uint64")return r?new n.U64Value(BigInt(r)):new n.NothingValue;if(t==="biguint")return r?new n.BigUIntValue(BigInt(r)):new n.NothingValue;if(t==="bool")return r?new n.BooleanValue(typeof r=="boolean"?r:r==="true"):new n.NothingValue;if(t==="address")return r?new n.AddressValue(n.Address.newFromBech32(r)):new n.NothingValue;if(t==="token")return r?new n.TokenIdentifierValue(r):new n.NothingValue;if(t==="hex")return r?n.BytesValue.fromHex(r):new n.NothingValue;if(t==="codemeta")return new n.CodeMetadataValue(n.CodeMetadata.newFromBytes(Uint8Array.from(Buffer.from(r,"hex"))));if(t==="asset"){let[a,s]=r.split(x.WarpConstants.ArgCompositeSeparator),c=new n.TokenComputer,i=L(a)?ee(a):c.extractIdentifierFromExtendedIdentifier(a),u=L(a)?0n:c.extractNonceFromExtendedIdentifier(a);return new n.Struct(this.nativeToType("asset"),[new n.Field(new n.TokenIdentifierValue(i),"token_identifier"),new n.Field(new n.U64Value(BigInt(u)),"token_nonce"),new n.Field(new n.BigUIntValue(BigInt(s)),"amount")])}throw new Error(`WarpArgSerializer (stringToTyped): Unsupported input type: ${t}`)}typeToString(e){if(e.hasExactClass(n.OptionType.ClassName))return"option:"+this.typeToString(e.getFirstTypeParameter());if(e.hasExactClass(n.OptionalType.ClassName))return"optional:"+this.typeToString(e.getFirstTypeParameter());if(e.hasExactClass(n.ListType.ClassName))return"list:"+this.typeToString(e.getFirstTypeParameter());if(e.hasExactClass(n.VariadicType.ClassName))return"variadic:"+this.typeToString(e.getFirstTypeParameter());if(e.hasExactClass(n.StringType.ClassName))return"string";if(e.hasExactClass(n.U8Type.ClassName))return"uint8";if(e.hasExactClass(n.U16Type.ClassName))return"uint16";if(e.hasExactClass(n.U32Type.ClassName))return"uint32";if(e.hasExactClass(n.U64Type.ClassName))return"uint64";if(e.hasExactClass(n.BigUIntType.ClassName))return"biguint";if(e.hasExactClass(n.BooleanType.ClassName))return"bool";if(e.hasExactClass(n.AddressType.ClassName))return"address";if(e.hasExactClass(n.TokenIdentifierType.ClassName))return"token";if(e.hasExactClass(n.BytesType.ClassName))return"hex";if(e.hasExactClass(n.CodeMetadataType.ClassName))return"codemeta";if(e.hasExactClass(n.StructType.ClassName)&&e.getClassName()==="EsdtTokenPayment")return"asset";throw new Error(`WarpArgSerializer (typeToString): Unsupported input type: ${e.getClassName()}`)}};var O=class{constructor(e,t){this.config=e;this.chain=t;this.abi=new R(e,t),this.serializer=new F,this.cache=new w.WarpCache(e.cache?.type)}async getTransactionExecutionResults(e,t){let{actionIndex:r}=(0,w.findWarpExecutableAction)(e),a=this.cache.get(w.WarpCacheKey.WarpExecutable(this.config.env,e.meta?.hash||"",r))??[],s=await this.extractContractResults(e,t,a),c=(0,w.getNextInfo)(this.config,[],e,r,s),i=(0,w.applyResultsToMessages)(e,s.results);return{success:t.status.isSuccessful(),warp:e,action:r,user:this.config.user?.wallets?.[this.chain.name]||null,txHash:t.hash,tx:t,next:c,values:s.values,valuesRaw:[],results:s.results,messages:i}}async extractContractResults(e,t,r){let{action:a,actionIndex:s}=(0,w.findWarpExecutableAction)(e),c=[],i={};if(!e.results||a.type!=="contract")return{values:c,results:i};if(!Object.values(e.results).some(v=>v.includes("out")||v.includes("event"))){for(let[v,g]of Object.entries(e.results))i[v]=g;return{values:c,results:await(0,w.evaluateResultsCommon)(e,i,s,r,this.config.transform?.runner)}}let m=await this.abi.getAbiForAction(a),h=new D.TransactionEventsParser({abi:m}),T=new D.SmartContractTransactionsOutcomeParser({abi:m}).parseExecute({transactionOnNetwork:t,function:a.func||void 0});for(let[v,g]of Object.entries(e.results)){if(g.startsWith(w.WarpConstants.Transform.Prefix))continue;if(g.startsWith("input.")){i[v]=g;continue}let B=(0,w.parseResultsOutIndex)(g);if(B!==null&&B!==s){i[v]=null;continue}let[b,E,U]=g.split(".");if(b==="event"){if(!E||isNaN(Number(U)))continue;let I=Number(U),C=(0,D.findEventsByFirstTopic)(t,E),H=h.parseEvents({events:C})[0],Z=Object.values(H)[I]||null;c.push(Z),i[v]=Z&&Z.valueOf()}else if(b==="out"||b.startsWith("out[")){if(!E)continue;let I=Number(E),C=T.values[I-1]||null;U&&(C=C[U]||null),C&&typeof C=="object"&&(C="toFixed"in C?C.toFixed():C.valueOf()),c.push(C),i[v]=C&&C.valueOf()}else i[v]=g}return{values:c,results:await(0,w.evaluateResultsCommon)(e,i,s,r)}}async extractQueryResults(e,t,r,a){let s=t.map(m=>this.serializer.typedToString(m)),c=t.map(m=>this.serializer.typedToNative(m)[1]),i={};if(!e.results)return{values:s,valuesRaw:c,results:i};let u=m=>{let h=m.split(".").slice(1).map(T=>parseInt(T)-1);if(h.length===0)return;let d=c[h[0]];for(let T=1;T<h.length;T++){if(d==null)return;d=d[h[T]]}return d};for(let[m,h]of Object.entries(e.results)){if(h.startsWith(w.WarpConstants.Transform.Prefix))continue;let d=(0,w.parseResultsOutIndex)(h);if(d!==null&&d!==r){i[m]=null;continue}h.startsWith("out.")||h==="out"||h.startsWith("out[")?i[m]=u(h)||null:i[m]=h}return{values:s,valuesRaw:c,results:await(0,w.evaluateResultsCommon)(e,i,r,a)}}async resolveWarpResultsRecursively(e){let t=e.warp,r=e.entryActionIndex,a=e.executor,s=e.inputs,c=e.meta,i=new Map,u=new Set,m=this;async function h(g,B=[]){if(i.has(g))return i.get(g);if(u.has(g))throw new Error(`Circular dependency detected at action ${g}`);u.add(g);let b=t.actions[g-1];if(!b)throw new Error(`Action ${g} not found`);let E;if(b.type==="query")E=await a.executeQuery(t,g,B);else if(b.type==="collect")E=await a.executeCollect(t,g,B,c);else throw new Error(`Unsupported or interactive action type: ${b.type}`);if(i.set(g,E),t.results)for(let U of Object.values(t.results)){let C=String(U).match(/^out\[(\d+)\]/);if(C){let H=parseInt(C[1],10);H!==g&&!i.has(H)&&await h(H)}}return u.delete(g),E}await h(r,s);let d={};for(let g of i.values())for(let[B,b]of Object.entries(g.results))b!==null?d[B]=b:B in d||(d[B]=null);let T=await(0,w.evaluateResultsCommon)(t,d,r,s,this.config.transform?.runner);return{...i.get(r),action:r,results:T}}};var Ne="EGLD-000000",y=class o{constructor(e,t){this.config=e;this.chain=t;this.serializer=new F,this.abi=new R(this.config,this.chain),this.results=new O(this.config,this.chain)}async createTransaction(e){let t=(0,N.getWarpActionByIndex)(e.warp,e.action),r=null;if(t.type==="transfer")r=await this.createTransferTransaction(e);else if(t.type==="contract")r=await this.createContractCallTransaction(e);else{if(t.type==="query")throw new Error("WarpMultiversxExecutor: Invalid action type for createTransactionForExecute; Use executeQuery instead");if(t.type==="collect")throw new Error("WarpMultiversxExecutor: Invalid action type for createTransactionForExecute; Use executeCollect instead")}if(!r)throw new Error(`WarpMultiversxExecutor: Invalid action type (${t.type})`);return r}async createTransferTransaction(e){let t=this.config.user?.wallets?.[e.chain.name];if(!t)throw new Error("WarpMultiversxExecutor: createTransfer - user address not set");let r=f.Address.newFromBech32(t),a=new f.TransactionsFactoryConfig({chainID:e.chain.chainId}),s=e.data?Buffer.from(this.serializer.stringToTyped(e.data).valueOf()):null;return new f.TransferTransactionsFactory({config:a}).createTransactionForTransfer(r,{receiver:f.Address.newFromBech32(e.destination),nativeAmount:e.value,tokenTransfers:this.toTokenTransfers(e.transfers),data:s?new Uint8Array(s):void 0})}async createContractCallTransaction(e){let t=this.config.user?.wallets?.[e.chain.name];if(!t)throw new Error("WarpMultiversxExecutor: createContractCall - user address not set");let r=(0,N.getWarpActionByIndex)(e.warp,e.action),a=f.Address.newFromBech32(t),s=e.args.map(i=>this.serializer.stringToTyped(i)),c=new f.TransactionsFactoryConfig({chainID:e.chain.chainId});return new f.SmartContractTransactionsFactory({config:c}).createTransactionForExecute(a,{contract:f.Address.newFromBech32(e.destination),function:"func"in r&&r.func||"",gasLimit:"gasLimit"in r?BigInt(r.gasLimit||0):0n,arguments:s,tokenTransfers:this.toTokenTransfers(e.transfers),nativeTransferAmount:e.value})}async executeQuery(e){let t=(0,N.getWarpActionByIndex)(e.warp,e.action);if(t.type!=="query")throw new Error(`WarpMultiversxExecutor: Invalid action type for executeQuery: ${t.type}`);let r=await this.abi.getAbiForAction(t),a=e.args.map(I=>this.serializer.stringToTyped(I)),s=o.getChainEntrypoint(e.chain,this.config.env,this.config),c=f.Address.newFromBech32(e.destination),i=s.createSmartContractController(r),u=i.createQuery({contract:c,function:t.func||"",arguments:a}),m=await i.runQuery(u),h=m.returnCode==="ok",d=new f.ArgSerializer,T=r.getEndpoint(m.function||t.func||""),v=(m.returnDataParts||[]).map(I=>Buffer.from(I)),g=d.buffersToValues(v,T.output),{values:B,valuesRaw:b,results:E}=await this.results.extractQueryResults(e.warp,g,e.action,e.resolvedInputs),U=(0,N.getNextInfo)(this.config,[],e.warp,e.action,E);return{success:h,warp:e.warp,action:e.action,user:this.config.user?.wallets?.[e.chain.name]||null,txHash:null,tx:null,next:U,values:B,valuesRaw:b,results:E,messages:(0,N.applyResultsToMessages)(e.warp,E)}}static getChainEntrypoint(e,t,r){let a="warp-sdk",c=r?(0,N.getProviderUrl)(r,e.name,t,e.defaultApiUrl):e.defaultApiUrl;return t==="devnet"?new f.DevnetEntrypoint({url:c,kind:"api",clientName:a}):t==="testnet"?new f.TestnetEntrypoint({url:c,kind:"api",clientName:a}):new f.MainnetEntrypoint({url:c,kind:"api",clientName:a})}async signMessage(e,t){let r=f.UserSecretKey.fromString(t);return(await new f.UserSigner(r).sign(new Uint8Array(Buffer.from(e,"utf-8")))).toString()}toTokenTransfers(e){return e.map(t=>t.identifier===this.chain.nativeToken.identifier?{...t,identifier:Ne}:t).map(t=>{let a=new f.TokenComputer().extractNonceFromExtendedIdentifier(t.identifier);return new f.TokenTransfer({token:new f.Token({identifier:t.identifier,nonce:BigInt(a||0)}),amount:t.amount})})}};var G=class{constructor(e){this.config=e}async getContract(e,t){try{let s=await y.getChainEntrypoint(t,this.config.env).createNetworkProvider().doGetGeneric(`accounts/${e}`);return{address:e,owner:s.ownerAddress,verified:s.isVerified||!1}}catch(r){return oe.WarpLogger.error("WarpContractLoader: getContract error",r),null}}async getVerificationInfo(e,t){try{let s=await y.getChainEntrypoint(t,this.config.env).createNetworkProvider().doGetGeneric(`accounts/${e}/verification`);return{codeHash:s.codeHash,abi:s.source.abi}}catch(r){return oe.WarpLogger.error("WarpContractLoader: getVerificationInfo error",r),null}}};var R=class{constructor(e,t){this.config=e;this.chain=t;this.contractLoader=new G(this.config),this.cache=new A.WarpCache(this.config.cache?.type)}async createInscriptionTransaction(e){let t=this.config.user?.wallets?.[this.chain.name];if(!t)throw new Error("WarpBuilder: user address not set");let r=new V.TransactionsFactoryConfig({chainID:this.chain.chainId}),a=new V.TransferTransactionsFactory({config:r}),s=V.Address.newFromBech32(t),c={protocol:(0,A.getLatestProtocolIdentifier)("abi"),content:e},i=JSON.stringify(c),u=await a.createTransactionForTransfer(s,{receiver:s,nativeAmount:BigInt(0),data:Uint8Array.from(Buffer.from(i))});return u.gasLimit=u.gasLimit+BigInt(2e6),u}async createFromRaw(e){return JSON.parse(e)}async createFromTransaction(e){let t=await this.createFromRaw(e.data.toString());return t.meta={chain:this.chain.name,hash:e.hash,creator:e.sender.toBech32(),createdAt:new Date(e.timestamp*1e3).toISOString()},t}async createFromTransactionHash(e,t){let r=A.WarpCacheKey.WarpAbi(this.config.env,e);if(t){let c=this.cache.get(r);if(c)return A.WarpLogger.info(`WarpAbiBuilder (createFromTransactionHash): Warp abi found in cache: ${e}`),c}let s=y.getChainEntrypoint(this.chain,this.config.env).createNetworkProvider();try{let c=await s.getTransaction(e),i=await this.createFromTransaction(c);return t&&t.ttl&&i&&this.cache.set(r,i,t.ttl),i}catch(c){return A.WarpLogger.error("WarpAbiBuilder: Error creating from transaction hash",c),null}}async getAbiForAction(e){if(e.abi)return await this.fetchAbi(e);if(!e.address)throw new Error("WarpActionExecutor: Address not found");let t=await this.contractLoader.getVerificationInfo(e.address,this.chain);if(!t)throw new Error("WarpActionExecutor: Verification info not found");return V.AbiRegistry.create(t.abi)}async fetchAbi(e){if(!e.abi)throw new Error("WarpActionExecutor: ABI not found");if(e.abi.startsWith(A.WarpConstants.IdentifierType.Hash)){let t=e.abi.split(A.WarpConstants.ArgParamsSeparator)[1],r=await this.createFromTransactionHash(t);if(!r)throw new Error(`WarpActionExecutor: ABI not found for hash: ${e.abi}`);return V.AbiRegistry.create(r.content)}else{let r=await(await fetch(e.abi)).json();return V.AbiRegistry.create(r)}}};var M=require("@multiversx/sdk-core"),te=require("@vleap/warps"),ge=require("buffer");var Q=class{constructor(e,t){this.config=e;this.chain=t;this.core=new te.WarpBrandBuilder(e)}async createInscriptionTransaction(e){let t=this.config.user?.wallets?.[this.chain.name];if(!t)throw new Error("BrandBuilder: user address not set");let r=new M.TransactionsFactoryConfig({chainID:this.chain.chainId}),a=new M.TransferTransactionsFactory({config:r}),s=M.Address.newFromBech32(t),c=JSON.stringify(e);return await a.createTransactionForNativeTokenTransfer(s,{receiver:M.Address.newFromBech32(t),nativeAmount:BigInt(0),data:Uint8Array.from(ge.Buffer.from(c))})}async createFromTransaction(e,t=!1){return await this.core.createFromRaw(e.data.toString(),t)}async createFromTransactionHash(e){let r=y.getChainEntrypoint(this.chain,this.config.env).createNetworkProvider();try{let a=await r.getTransaction(e);return this.createFromTransaction(a)}catch(a){return te.WarpLogger.error("BrandBuilder: Error creating from transaction hash",a),null}}};var $=require("@multiversx/sdk-core"),S=require("@vleap/warps");var j=class extends S.WarpBuilder{constructor(t,r){super(t);this.config=t;this.chain=r;this.cache=new S.WarpCache(t.cache?.type),this.core=new S.WarpBuilder(t)}async createInscriptionTransaction(t){let r=this.config.user?.wallets?.[this.chain.name];if(!r)throw new Error("WarpBuilder: user address not set");let a=new $.TransactionsFactoryConfig({chainID:this.chain.chainId}),s=new $.TransferTransactionsFactory({config:a}),c=$.Address.newFromBech32(r),i=JSON.stringify(t),u=await s.createTransactionForTransfer(c,{receiver:$.Address.newFromBech32(r),nativeAmount:BigInt(0),data:Uint8Array.from(Buffer.from(i))});return u.gasLimit=u.gasLimit+BigInt(2e6),u}async createFromTransaction(t,r=!1){let a=await this.core.createFromRaw(t.data.toString(),r);return a.meta={chain:this.chain.name,hash:t.hash,creator:t.sender.toBech32(),createdAt:new Date(t.timestamp*1e3).toISOString()},a}async createFromTransactionHash(t,r){let a=S.WarpCacheKey.Warp(this.config.env,t);if(r){let i=this.cache.get(a);if(i)return S.WarpLogger.info(`WarpBuilder (createFromTransactionHash): Warp found in cache: ${t}`),i}let c=y.getChainEntrypoint(this.chain,this.config.env).createNetworkProvider();try{let i=await c.getTransaction(t),u=await this.createFromTransaction(i);return r&&r.ttl&&u&&this.cache.set(a,u,r.ttl),u}catch(i){return S.WarpLogger.error("WarpBuilder: Error creating from transaction hash",i),null}}};var P=require("@multiversx/sdk-core"),q=require("@vleap/warps");var ye=require("@vleap/warps"),re=ye.WarpChainName.Multiversx,we=[{chain:re,identifier:"EGLD",name:"eGold",symbol:"EGLD",decimals:18,logoUrl:"https://tools.multiversx.com/assets-cdn/tokens/EGLD-000000/icon.pngsvg"},{chain:re,identifier:"EGLD-000000",name:"eGold",symbol:"EGLD",decimals:18,logoUrl:"https://tools.multiversx.com/assets-cdn/tokens/EGLD-000000/icon.png"},{chain:re,identifier:"VIBE",name:"VIBE",symbol:"VIBE",decimals:18,logoUrl:"https://vleap.ai/images/tokens/vibe.svg"},{chain:re,identifier:"VIBE-000000",name:"VIBE",symbol:"VIBE",decimals:18,logoUrl:"https://vleap.ai/images/tokens/vibe.svg"}],ce=o=>we.find(e=>e.identifier===o)||null;var K=class{constructor(e,t){this.config=e;this.chain=t;this.cache=new q.WarpCache(e.cache?.type)}async getAccount(e){let r=await y.getChainEntrypoint(this.chain,this.config.env,this.config).createNetworkProvider().getAccount(P.Address.newFromBech32(e));return{chain:this.chain.name,address:r.address.toBech32(),balance:r.balance}}async getAccountAssets(e){let t=y.getChainEntrypoint(this.chain,this.config.env,this.config).createNetworkProvider(),r=t.getAccount(P.Address.newFromBech32(e)),a=t.getFungibleTokensOfAccount(P.Address.newFromBech32(e)),[s,c]=await Promise.all([r,a]),i=s.balance>0?[{...this.chain.nativeToken,amount:s.balance}]:[];return i.push(...c.map(u=>({chain:this.chain.name,identifier:u.token.identifier,name:u.raw.name,symbol:u.raw.ticker,amount:u.amount,decimals:u.raw.decimals,logoUrl:u.raw.assets?.pngUrl||""}))),i}async getAsset(e){let t=q.WarpCacheKey.Asset(this.config.env,this.chain.name,e),r=this.cache.get(t);if(r)return r;let a=ce(e);if(a)return{chain:this.chain.name,identifier:e,name:a.name,symbol:a.symbol,amount:0n,decimals:a.decimals,logoUrl:a.logoUrl};let s=new P.TokenComputer,c=L(e)?0n:s.extractNonceFromExtendedIdentifier(e),i=new P.Token({identifier:e,nonce:BigInt(c||0)}),u=s.isFungible(i),m=y.getChainEntrypoint(this.chain,this.config.env,this.config).createNetworkProvider(),h=ee(e),d=await m.doGetGeneric(`tokens/${h}`),T={chain:this.chain.name,identifier:i.identifier,name:d.name,symbol:d.ticker,amount:0n,decimals:d.decimals,logoUrl:d.assets?.pngUrl||"#"};return this.cache.set(t,T,q.CacheTtl.OneHour),T}async getAction(e,t=!1){let r=y.getChainEntrypoint(this.chain,this.config.env,this.config),a=t?await r.awaitCompletedTransaction(e):await r.getTransaction(e);return{chain:this.chain.name,id:a.hash,receiver:a.receiver.toBech32(),sender:a.sender.toBech32(),value:a.value,function:a.function,status:this.toActionStatus(a),createdAt:this.toActionCreatedAt(a),error:a?.smartContractResults.map(s=>s.raw.returnMessage)[0]||null,tx:a}}async getAccountActions(e,t){let r=y.getChainEntrypoint(this.chain,this.config.env,this.config).createNetworkProvider(),a=`accounts/${e}/transactions`,s=new URLSearchParams,c=t?.size||25,i=t?.page||0;if(i>0){let m=i*c;s.append("from",m.toString())}return c!==25&&s.append("size",c.toString()),s.toString()&&(a+=`?${s.toString()}`),(await r.doGetGeneric(a)).map(m=>({chain:this.chain.name,id:m.txHash,receiver:m.receiver,sender:m.sender,value:m.value,function:m.function,status:this.toActionStatus(m),createdAt:this.toActionCreatedAt(m)}))}toActionStatus(e){return e.status.isSuccessful()?"success":e.status.isFailed()?"failed":"pending"}toActionCreatedAt(e){return new Date(e.timestamp||e.timestamp*1e3).toISOString()}};var Ve={Egld:{Identifier:"EGLD",EsdtIdentifier:"EGLD-000000",DisplayName:"eGold",Decimals:18}},Ce=(r=>(r.MultiversxExplorer="multiversx_explorer",r.MultiversxExplorerDevnet="multiversx_explorer_devnet",r.MultiversxExplorerTestnet="multiversx_explorer_testnet",r))(Ce||{}),xe=(r=>(r.VibechainExplorer="vibechain_explorer",r.VibechainExplorerDevnet="vibechain_explorer_devnet",r.VibechainExplorerTestnet="vibechain_explorer_testnet",r))(xe||{}),pe={multiversx:{mainnet:["multiversx_explorer"],testnet:["multiversx_explorer_testnet"],devnet:["multiversx_explorer_devnet"]},vibechain:{mainnet:["vibechain_explorer"],testnet:["vibechain_explorer_testnet"],devnet:["vibechain_explorer_devnet"]}},_={multiversx_explorer:"https://explorer.multiversx.com",multiversx_explorer_devnet:"https://devnet-explorer.multiversx.com",multiversx_explorer_testnet:"https://testnet-explorer.multiversx.com",vibechain_explorer:"https://vibeox-explorer.multiversx.com",vibechain_explorer_devnet:"https://vibeox-explorer.multiversx.com",vibechain_explorer_testnet:"https://vibeox-explorer.multiversx.com"};var J=class{constructor(e,t){this.chain=e;this.config=t}getExplorers(){let e=pe[this.chain];if(!e)return["multiversx_explorer"];let t=e[this.config.env];return t||["multiversx_explorer"]}getPrimaryExplorer(){return this.getExplorers()[0]}getExplorerUrlByName(e){let t=this.config.preferences?.explorers?.[this.chain];if(t&&!e){let s=_[t];if(s)return s}if(e){let s=_[e];if(s)return s}let r=this.getPrimaryExplorer();return _[r]||_[r]}getAccountUrl(e,t){return`${this.getExplorerUrlByName(t)}/accounts/${e}`}getTransactionUrl(e,t){return`${this.getExplorerUrlByName(t)}/transactions/${e}`}getBlockUrl(e,t){return`${this.getExplorerUrlByName(t)}/blocks/${e}`}getAssetUrl(e,t){return`${this.getExplorerUrlByName(t)}/tokens/${e}`}getContractUrl(e,t){return`${this.getExplorerUrlByName(t)}/accounts/${e}`}getAllExplorers(){return this.getExplorers()}getExplorerByName(e){return this.getExplorers().find(r=>r.toLowerCase()===e.toLowerCase())}getAccountUrls(e){let t=this.getAllExplorers(),r={};return t.forEach(a=>{let s=_[a];s&&(r[a]=`${s}/accounts/${e}`)}),r}getTransactionUrls(e){let t=this.getAllExplorers(),r={};return t.forEach(a=>{let s=_[a];s&&(r[a]=`${s}/transactions/${e}`)}),r}};var l=require("@multiversx/sdk-core"),k=require("@vleap/warps");var le={buildInfo:{rustc:{version:"1.86.0",commitHash:"05f9846f893b09a1be1fc8560e33fc3c815cfecb",commitDate:"2025-03-31",channel:"Stable",short:"rustc 1.86.0 (05f9846f8 2025-03-31)"},contractCrate:{name:"registry",version:"0.0.1"},framework:{name:"multiversx-sc",version:"0.51.1"}},name:"RegistryContract",constructor:{inputs:[{name:"unit_price",type:"BigUint"},{name:"vault",type:"Address"}],outputs:[]},upgradeConstructor:{inputs:[],outputs:[]},endpoints:[{name:"registerWarp",mutability:"mutable",payableInTokens:["EGLD"],inputs:[{name:"hash",type:"bytes"},{name:"alias_opt",type:"optional<bytes>",multi_arg:!0},{name:"brand_opt",type:"optional<bytes>",multi_arg:!0}],outputs:[],allow_multiple_var_args:!0},{name:"unregisterWarp",mutability:"mutable",inputs:[{name:"warp",type:"bytes"}],outputs:[]},{name:"upgradeWarp",mutability:"mutable",payableInTokens:["EGLD"],inputs:[{name:"alias",type:"bytes"},{name:"new_warp",type:"bytes"}],outputs:[]},{name:"setWarpAlias",mutability:"mutable",payableInTokens:["EGLD"],inputs:[{name:"hash",type:"bytes"},{name:"alias",type:"bytes"}],outputs:[]},{name:"forceRemoveAlias",mutability:"mutable",inputs:[{name:"hash",type:"bytes"}],outputs:[]},{name:"verifyWarp",mutability:"mutable",inputs:[{name:"warp",type:"bytes"}],outputs:[]},{name:"transferOwnership",mutability:"mutable",inputs:[{name:"warp",type:"bytes"},{name:"new_owner",type:"Address"}],outputs:[]},{name:"getUserWarps",mutability:"readonly",inputs:[{name:"address",type:"Address"}],outputs:[{type:"variadic<InfoView>",multi_result:!0}]},{name:"getInfoByAlias",mutability:"readonly",inputs:[{name:"alias",type:"bytes"}],outputs:[{type:"InfoView"}]},{name:"getInfoByHash",mutability:"readonly",inputs:[{name:"hash",type:"bytes"}],outputs:[{type:"InfoView"}]},{name:"setVault",onlyOwner:!0,mutability:"mutable",inputs:[{name:"vault",type:"Address"}],outputs:[]},{name:"setUnitPrice",onlyOwner:!0,mutability:"mutable",inputs:[{name:"amount",type:"BigUint"}],outputs:[]},{name:"addAdmin",onlyOwner:!0,mutability:"mutable",inputs:[{name:"address",type:"Address"}],outputs:[]},{name:"removeAdmin",onlyOwner:!0,mutability:"mutable",inputs:[{name:"address",type:"Address"}],outputs:[]},{name:"getConfig",mutability:"readonly",inputs:[],outputs:[{type:"ConfigView"}]},{name:"registerBrand",mutability:"mutable",payableInTokens:["EGLD"],inputs:[{name:"hash",type:"bytes"}],outputs:[]},{name:"brandWarp",mutability:"mutable",payableInTokens:["EGLD"],inputs:[{name:"warp",type:"bytes"},{name:"brand",type:"bytes"}],outputs:[]},{name:"getUserBrands",mutability:"readonly",inputs:[{name:"user",type:"Address"}],outputs:[{type:"variadic<bytes>",multi_result:!0}]},{name:"setChain",onlyOwner:!0,mutability:"mutable",inputs:[{name:"name",type:"bytes"},{name:"display_name",type:"bytes"},{name:"chain_id",type:"bytes"},{name:"block_time",type:"u32"},{name:"address_hrp",type:"bytes"},{name:"api_url",type:"bytes"},{name:"explorer_url",type:"bytes"},{name:"native_token",type:"bytes"}],outputs:[]},{name:"removeChain",onlyOwner:!0,mutability:"mutable",inputs:[{name:"name",type:"bytes"}],outputs:[]},{name:"getChain",mutability:"readonly",inputs:[{name:"name",type:"bytes"}],outputs:[{type:"ChainView"}]},{name:"getChains",mutability:"readonly",inputs:[],outputs:[{type:"variadic<ChainView>",multi_result:!0}]}],events:[{identifier:"warpRegistered",inputs:[{name:"hash",type:"bytes",indexed:!0},{name:"alias",type:"bytes",indexed:!0},{name:"trust",type:"bytes",indexed:!0}]},{identifier:"warpUnregistered",inputs:[{name:"hash",type:"bytes",indexed:!0}]},{identifier:"warpUpgraded",inputs:[{name:"alias",type:"bytes",indexed:!0},{name:"new_warp",type:"bytes",indexed:!0},{name:"trust",type:"bytes",indexed:!0}]},{identifier:"warpVerified",inputs:[{name:"hash",type:"bytes",indexed:!0}]},{identifier:"aliasUpdated",inputs:[{name:"hash",type:"bytes",indexed:!0},{name:"alias",type:"bytes",indexed:!0}]},{identifier:"ownershipTransferred",inputs:[{name:"warp",type:"bytes",indexed:!0},{name:"old_owner",type:"Address",indexed:!0},{name:"new_owner",type:"Address",indexed:!0}]}],esdtAttributes:[],hasCallback:!1,types:{ChainView:{type:"struct",fields:[{name:"name",type:"bytes"},{name:"display_name",type:"bytes"},{name:"chain_id",type:"bytes"},{name:"block_time",type:"u32"},{name:"address_hrp",type:"bytes"},{name:"api_url",type:"bytes"},{name:"explorer_url",type:"bytes"},{name:"native_token",type:"bytes"}]},ConfigView:{type:"struct",fields:[{name:"unit_price",type:"BigUint"},{name:"admins",type:"List<Address>"}]},InfoView:{type:"struct",fields:[{name:"hash",type:"bytes"},{name:"alias",type:"Option<bytes>"},{name:"trust",type:"bytes"},{name:"owner",type:"Address"},{name:"created_at",type:"u64"},{name:"upgraded_at",type:"u64"},{name:"brand",type:"Option<bytes>"},{name:"upgrade",type:"Option<bytes>"}]}}};var W=o=>{if(o==="devnet")return"erd1qqqqqqqqqqqqqpgqje2f99vr6r7sk54thg03c9suzcvwr4nfl3tsfkdl36";if(o==="testnet")throw new Error("Multiversx testnet is not supported");return"erd1qqqqqqqqqqqqqpgq3mrpj3u6q7tejv6d7eqhnyd27n9v5c5tl3ts08mffe"};var ne=o=>({hash:o.hash.toString("hex"),alias:o.alias?.toString()||null,trust:o.trust.toString(),owner:o.owner.toString(),createdAt:o.created_at.toNumber(),upgradedAt:o.upgraded_at?.toNumber(),brand:o.brand?.toString("hex")||null,upgrade:o.upgrade?.toString("hex")||null}),We=o=>({unitPrice:BigInt(o.unit_price.toString()),admins:o.admins.map(e=>e.toBech32())});var X=class{constructor(e,t){this.config=e;this.chain=t;this.cache=new k.WarpCache(e.cache?.type),this.registryConfig={unitPrice:BigInt(0),admins:[]},this.userWallet=this.config.user?.wallets?.[this.chain.name]||null}async init(){await this.loadRegistryConfigs()}getRegistryConfig(){return this.registryConfig}async createWarpRegisterTransaction(e,t,r){if(this.registryConfig.unitPrice===BigInt(0))throw new Error("WarpRegistry: config not loaded. forgot to call init()?");if(!this.userWallet)throw new Error("WarpRegistry: user address not set");let a=l.Address.newFromBech32(this.userWallet),s=()=>this.isCurrentUserAdmin()?BigInt(0):t&&r?this.registryConfig.unitPrice*BigInt(3):t?this.registryConfig.unitPrice*BigInt(2):this.registryConfig.unitPrice,c=()=>t&&r?[l.BytesValue.fromHex(e),l.BytesValue.fromUTF8(t),l.BytesValue.fromHex(r)]:t?[l.BytesValue.fromHex(e),l.BytesValue.fromUTF8(t)]:[l.BytesValue.fromHex(e)];return await this.getFactory().createTransactionForExecute(a,{contract:l.Address.newFromBech32(W(this.config.env)),function:"registerWarp",gasLimit:BigInt(1e7),nativeTransferAmount:s(),arguments:c()})}async createWarpUnregisterTransaction(e){if(!this.userWallet)throw new Error("WarpRegistry: user address not set");let t=l.Address.newFromBech32(this.userWallet);return await this.getFactory().createTransactionForExecute(t,{contract:l.Address.newFromBech32(W(this.config.env)),function:"unregisterWarp",gasLimit:BigInt(1e7),arguments:[l.BytesValue.fromHex(e)]})}async createWarpUpgradeTransaction(e,t){if(this.registryConfig.unitPrice===BigInt(0))throw new Error("WarpRegistry: config not loaded. forgot to call init()?");if(!this.userWallet)throw new Error("WarpRegistry: user address not set");let r=l.Address.newFromBech32(this.userWallet);return await this.getFactory().createTransactionForExecute(r,{contract:l.Address.newFromBech32(W(this.config.env)),function:"upgradeWarp",gasLimit:BigInt(1e7),nativeTransferAmount:this.isCurrentUserAdmin()?void 0:this.registryConfig.unitPrice,arguments:[l.BytesValue.fromUTF8(e),l.BytesValue.fromHex(t)]})}async createWarpAliasSetTransaction(e,t){if(!this.userWallet)throw new Error("WarpRegistry: user address not set");let r=l.Address.newFromBech32(this.userWallet);return await this.getFactory().createTransactionForExecute(r,{contract:l.Address.newFromBech32(W(this.config.env)),function:"setWarpAlias",gasLimit:BigInt(1e7),nativeTransferAmount:this.isCurrentUserAdmin()?void 0:this.registryConfig.unitPrice,arguments:[l.BytesValue.fromHex(e),l.BytesValue.fromUTF8(t)]})}async createWarpVerifyTransaction(e){if(!this.userWallet)throw new Error("WarpRegistry: user address not set");let t=l.Address.newFromBech32(this.userWallet);return await this.getFactory().createTransactionForExecute(t,{contract:l.Address.newFromBech32(W(this.config.env)),function:"verifyWarp",gasLimit:BigInt(1e7),arguments:[l.BytesValue.fromHex(e)]})}async createWarpTransferOwnershipTransaction(e,t){if(!this.userWallet)throw new Error("WarpRegistry: user address not set");let r=l.Address.newFromBech32(this.userWallet);return await this.getFactory().createTransactionForExecute(r,{contract:l.Address.newFromBech32(W(this.config.env)),function:"transferOwnership",gasLimit:BigInt(1e7),arguments:[l.BytesValue.fromHex(e),new l.AddressValue(new l.Address(t))]})}async createBrandRegisterTransaction(e){if(this.registryConfig.unitPrice===BigInt(0))throw new Error("WarpRegistry: config not loaded. forgot to call init()?");if(!this.userWallet)throw new Error("WarpRegistry: user address not set");let t=l.Address.newFromBech32(this.userWallet);return await this.getFactory().createTransactionForExecute(t,{contract:l.Address.newFromBech32(W(this.config.env)),function:"registerBrand",gasLimit:BigInt(1e7),nativeTransferAmount:this.isCurrentUserAdmin()?void 0:this.registryConfig.unitPrice,arguments:[l.BytesValue.fromHex(e)]})}async createWarpBrandingTransaction(e,t){if(!this.userWallet)throw new Error("WarpRegistry: user address not set");let r=l.Address.newFromBech32(this.userWallet);return await this.getFactory().createTransactionForExecute(r,{contract:l.Address.newFromBech32(W(this.config.env)),function:"brandWarp",gasLimit:BigInt(1e7),nativeTransferAmount:this.isCurrentUserAdmin()?void 0:this.registryConfig.unitPrice,arguments:[l.BytesValue.fromHex(e),l.BytesValue.fromHex(t)]})}async getInfoByAlias(e,t){try{let r=k.WarpCacheKey.RegistryInfo(this.config.env,e),a=t?this.cache.get(r):null;if(a)return k.WarpLogger.info(`WarpRegistry (getInfoByAlias): RegistryInfo found in cache: ${e}`),a;let s=l.Address.newFromBech32(W(this.config.env)),c=this.getController(),i=c.createQuery({contract:s,function:"getInfoByAlias",arguments:[l.BytesValue.fromUTF8(e)]}),u=await c.runQuery(i),[m]=c.parseQueryResponse(u),h=m?ne(m):null,d=h?.brand?await this.fetchBrand(h.brand):null;return t&&t.ttl&&this.cache.set(r,{registryInfo:h,brand:d},t.ttl),{registryInfo:h,brand:d}}catch{return{registryInfo:null,brand:null}}}async getInfoByHash(e,t){try{let r=k.WarpCacheKey.RegistryInfo(this.config.env,e);if(t){let d=this.cache.get(r);if(d)return k.WarpLogger.info(`WarpRegistry (getInfoByHash): RegistryInfo found in cache: ${e}`),d}let a=l.Address.newFromBech32(W(this.config.env)),s=this.getController(),c=s.createQuery({contract:a,function:"getInfoByHash",arguments:[l.BytesValue.fromHex(e)]}),i=await s.runQuery(c),[u]=s.parseQueryResponse(i),m=u?ne(u):null,h=m?.brand?await this.fetchBrand(m.brand):null;return t&&t.ttl&&this.cache.set(r,{registryInfo:m,brand:h},t.ttl),{registryInfo:m,brand:h}}catch{return{registryInfo:null,brand:null}}}async getUserWarpRegistryInfos(e){try{let t=e||this.userWallet;if(!t)throw new Error("WarpRegistry: user address not set");let r=l.Address.newFromBech32(W(this.config.env)),a=this.getController(),s=a.createQuery({contract:r,function:"getUserWarps",arguments:[new l.AddressValue(new l.Address(t))]}),c=await a.runQuery(s),[i]=a.parseQueryResponse(c);return i.map(ne)}catch{return[]}}async getUserBrands(e){try{let t=e||this.userWallet;if(!t)throw new Error("WarpRegistry: user address not set");let r=l.Address.newFromBech32(W(this.config.env)),a=this.getController(),s=a.createQuery({contract:r,function:"getUserBrands",arguments:[new l.AddressValue(new l.Address(t))]}),c=await a.runQuery(s),[i]=a.parseQueryResponse(c),u=i.map(d=>d.toString("hex")),m={ttl:365*24*60*60};return(await Promise.all(u.map(d=>this.fetchBrand(d,m)))).filter(d=>d!==null)}catch{return[]}}async fetchBrand(e,t){let r=k.WarpCacheKey.Brand(this.config.env,e),a=t?this.cache.get(r):null;if(a)return k.WarpLogger.info(`WarpRegistry (fetchBrand): Brand found in cache: ${e}`),a;let c=y.getChainEntrypoint(this.chain,this.config.env).createNetworkProvider();try{let i=await c.getTransaction(e),u=JSON.parse(i.data.toString());return u.meta={hash:i.hash,creator:i.sender.toBech32(),createdAt:new Date(i.timestamp*1e3).toISOString()},t&&t.ttl&&this.cache.set(r,u,t.ttl),u}catch{return null}}async loadRegistryConfigs(){let e=l.Address.newFromBech32(W(this.config.env)),t=this.getController(),[r]=await t.query({contract:e,function:"getConfig",arguments:[]}),a=r?We(r):null;this.registryConfig=a||{unitPrice:BigInt(0),admins:[]}}getFactory(){let e=new l.TransactionsFactoryConfig({chainID:this.chain.chainId}),t=l.AbiRegistry.create(le);return new l.SmartContractTransactionsFactory({config:e,abi:t})}getController(){let e=y.getChainEntrypoint(this.chain,this.config.env),t=l.AbiRegistry.create(le);return e.createSmartContractController(t)}isCurrentUserAdmin(){return!!this.userWallet&&this.registryConfig.admins.includes(this.userWallet)}};var Y=(o,e,t)=>(r,a)=>{let s=t[r.env];return{chain:o,chainInfo:s,prefix:e,builder:()=>new j(r,s),executor:new y(r,s),results:new O(r,s),serializer:new F,registry:new X(r,s),explorer:new J(o,r),abiBuilder:()=>new R(r,s),brandBuilder:()=>new Q(r,s),dataLoader:new K(r,s),registerTypes:c=>{c.registerType("token",{stringToNative:i=>i,nativeToString:i=>`token:${i}`}),c.registerType("codemeta",{stringToNative:i=>i,nativeToString:i=>`codemeta:${i}`})}}};var ae={chain:z.WarpChainName.Multiversx,identifier:"EGLD",name:"eGold",symbol:"EGLD",decimals:18,logoUrl:"https://vleap.ai/images/tokens/egld.svg"},ue=Y(z.WarpChainName.Multiversx,"mvx",{mainnet:{name:z.WarpChainName.Multiversx,displayName:"MultiversX",chainId:"1",blockTime:6e3,addressHrp:"erd",defaultApiUrl:"https://api.multiversx.com",nativeToken:ae},testnet:{name:z.WarpChainName.Multiversx,displayName:"MultiversX Testnet",chainId:"T",blockTime:6e3,addressHrp:"erd",defaultApiUrl:"https://testnet-api.multiversx.com",nativeToken:ae},devnet:{name:z.WarpChainName.Multiversx,displayName:"MultiversX Devnet",chainId:"D",blockTime:6e3,addressHrp:"erd",defaultApiUrl:"https://devnet-api.multiversx.com",nativeToken:ae}});var se=require("@vleap/warps");var Te={chain:se.WarpChainName.Vibechain,identifier:"VIBE",name:"VIBE",symbol:"VIBE",decimals:18,logoUrl:"https://vleap.ai/images/tokens/vibe.svg"},me={name:se.WarpChainName.Vibechain,displayName:"VibeChain",chainId:"V",blockTime:600,addressHrp:"vibe",defaultApiUrl:"https://vibeox-api.multiversx.com",nativeToken:Te},de=Y(se.WarpChainName.Vibechain,"vibe",{mainnet:me,testnet:me,devnet:me});var ke=(o,e)=>[ue(o,e),de(o,e)],Fe=()=>[he.WarpChainName.Multiversx,he.WarpChainName.Vibechain];var p=require("@multiversx/sdk-core"),Re=(o,e)=>o?p.OptionValue.newProvided(o):e?p.OptionValue.newMissingTyped(e):p.OptionValue.newMissing(),Ue=(o,e)=>o?new p.OptionalValue(o.getType(),o):e?new p.OptionalValue(e):p.OptionalValue.newMissing(),Pe=o=>{if(o.length===0)throw new Error("Cannot create a list from an empty array");let e=o[0].getType();return new p.List(e,o)},_e=o=>p.VariadicValue.fromItems(...o),Oe=o=>{let e=o.map(t=>t.getType());return new p.CompositeValue(new p.CompositeType(...e),o)},Me=o=>p.StringValue.fromUTF8(o),$e=o=>new p.U8Value(o),Le=o=>new p.U16Value(o),De=o=>new p.U32Value(o),qe=o=>new p.U64Value(o),ze=o=>new p.BigUIntValue(BigInt(o)),He=o=>new p.BooleanValue(o),Ge=o=>new p.AddressValue(p.Address.newFromBech32(o)),Qe=o=>new p.TokenIdentifierValue(o),je=o=>p.BytesValue.fromHex(o),Ke=o=>new p.Struct(new p.StructType("EsdtTokenPayment",[new p.FieldDefinition("token_identifier","",new p.TokenIdentifierType),new p.FieldDefinition("token_nonce","",new p.U64Type),new p.FieldDefinition("amount","",new p.BigUIntType)]),[new p.Field(new p.TokenIdentifierValue(o.token.identifier),"token_identifier"),new p.Field(new p.U64Value(BigInt(o.token.nonce)),"token_nonce"),new p.Field(new p.BigUIntValue(BigInt(o.amount)),"amount")]),Je=o=>new p.CodeMetadataValue(p.CodeMetadata.newFromBytes(Uint8Array.from(Buffer.from(o,"hex")))),Xe=()=>new p.NothingValue;0&&(module.exports={ExplorerUrls,KnownTokens,MultiversxExplorers,MultiversxExplorersConfig,NativeTokenEgld,NativeTokenVibe,VibechainExplorers,WarpMultiversxAbiBuilder,WarpMultiversxBrandBuilder,WarpMultiversxBuilder,WarpMultiversxConstants,WarpMultiversxContractLoader,WarpMultiversxDataLoader,WarpMultiversxExecutor,WarpMultiversxExplorer,WarpMultiversxRegistry,WarpMultiversxResults,WarpMultiversxSerializer,address_value,asset_value,biguint_value,boolean_value,codemeta_value,composite_value,createMultiversxAdapter,findKnownTokenById,getAllMultiversxAdapters,getAllMultiversxChainNames,getMultiversxAdapter,getMultiversxRegistryAddress,getVibechainAdapter,hex_value,list_value,nothing_value,option_value,optional_value,string_value,token_value,u16_value,u32_value,u64_value,u8_value,variadic_value});
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{WarpChainName as ct}from"@vleap/warps";import{WarpChainName as R}from"@vleap/warps";import{AbiRegistry as de}from"@multiversx/sdk-core";import{WarpCache as Lt,WarpCacheKey as qt,WarpConstants as Xe,WarpLogger as Ye}from"@vleap/warps";import{WarpLogger as Je}from"@vleap/warps";import{Address as F,ArgSerializer as Et,DevnetEntrypoint as At,MainnetEntrypoint as It,SmartContractTransactionsFactory as Bt,TestnetEntrypoint as Nt,Token as Ge,TokenComputer as je,TokenTransfer as Vt,TransactionsFactoryConfig as Ke,TransferTransactionsFactory as St,UserSecretKey as kt,UserSigner as Ft}from"@multiversx/sdk-core";import{applyResultsToMessages as Rt,asset as Pt,getNextInfo as Ut,getProviderUrl as _t,getWarpActionByIndex as me,shiftBigintBy as Ot,WarpConstants as Mt}from"@vleap/warps";import{findEventsByFirstTopic as yt,SmartContractTransactionsOutcomeParser as wt,TransactionEventsParser as Ct}from"@multiversx/sdk-core";import{applyResultsToMessages as xt,evaluateResultsCommon as $,findWarpExecutableAction as De,getNextInfo as Wt,parseResultsOutIndex as ze,WarpCache as Tt,WarpCacheKey as vt,WarpConstants as He}from"@vleap/warps";import{Address as mt,AddressType as K,AddressValue as Ae,BigUIntType as _,BigUIntValue as J,BooleanType as X,BooleanValue as Ie,BytesType as Y,BytesValue as Be,CodeMetadata as dt,CodeMetadataType as Z,CodeMetadataValue as Ne,CompositeType as ee,CompositeValue as Ve,Field as te,FieldDefinition as re,List as Se,ListType as ke,NothingValue as v,OptionalType as Fe,OptionalValue as ne,OptionType as Re,OptionValue as ae,StringType as se,StringValue as Pe,Struct as ft,StructType as Ue,Token as ht,TokenComputer as _e,TokenIdentifierType as O,TokenIdentifierValue as ie,U16Type as oe,U16Value as Oe,U32Type as ce,U32Value as Me,U64Type as M,U64Value as pe,U8Type as ue,U8Value as $e,VariadicType as le,VariadicValue as Le}from"@multiversx/sdk-core";import{WarpConstants as b,WarpSerializer as gt}from"@vleap/warps";var V=i=>!i.includes("-"),U=i=>V(i)?`${i}-000000`:i;var qe=new RegExp(`${b.ArgParamsSeparator}(.*)`),I=class{constructor(){this.coreSerializer=new gt}typedToString(e){let t=e.getType();if(t.hasExactClass(Re.ClassName)||e.hasClassOrSuperclass(ae.ClassName))return e.isSet()?`option:${this.typedToString(e.getTypedValue())}`:"option:null";if(t.hasExactClass(Fe.ClassName)||e.hasClassOrSuperclass(ne.ClassName))return e.isSet()?`optional:${this.typedToString(e.getTypedValue())}`:"optional:null";if(t.hasExactClass(ke.ClassName)||e.hasClassOrSuperclass(Se.ClassName)){let r=e.getItems(),a=r.map(s=>this.typedToString(s).split(b.ArgParamsSeparator)[0])[0],o=r.map(s=>this.typedToString(s).split(b.ArgParamsSeparator)[1]);return`list:${a}:${o.join(",")}`}if(t.hasExactClass(le.ClassName)||e.hasClassOrSuperclass(Le.ClassName)){let r=e.getItems(),a=r.map(s=>this.typedToString(s).split(b.ArgParamsSeparator)[0])[0],o=r.map(s=>this.typedToString(s).split(b.ArgParamsSeparator)[1]);return`variadic:${a}:${o.join(",")}`}if(t.hasExactClass(ee.ClassName)||e.hasClassOrSuperclass(Ve.ClassName)){let r=e.getItems(),n=r.map(c=>this.typedToString(c).split(b.ArgParamsSeparator)[0]),a=r.map(c=>this.typedToString(c).split(b.ArgParamsSeparator)[1]),o=n.join(b.ArgCompositeSeparator),s=a.join(b.ArgCompositeSeparator);return`composite(${o}):${s}`}if(t.hasExactClass(_.ClassName)||e.hasClassOrSuperclass(J.ClassName)||t.getName()==="BigUint")return`biguint:${BigInt(e.valueOf().toFixed())}`;if(t.hasExactClass(ue.ClassName)||e.hasClassOrSuperclass($e.ClassName))return`uint8:${e.valueOf().toNumber()}`;if(t.hasExactClass(oe.ClassName)||e.hasClassOrSuperclass(Oe.ClassName))return`uint16:${e.valueOf().toNumber()}`;if(t.hasExactClass(ce.ClassName)||e.hasClassOrSuperclass(Me.ClassName))return`uint32:${e.valueOf().toNumber()}`;if(t.hasExactClass(M.ClassName)||e.hasClassOrSuperclass(pe.ClassName))return`uint64:${BigInt(e.valueOf().toFixed())}`;if(t.hasExactClass(se.ClassName)||e.hasClassOrSuperclass(Pe.ClassName))return`string:${e.valueOf()}`;if(t.hasExactClass(X.ClassName)||e.hasClassOrSuperclass(Ie.ClassName))return`bool:${e.valueOf()}`;if(t.hasExactClass(K.ClassName)||e.hasClassOrSuperclass(Ae.ClassName))return`address:${e.valueOf().toBech32()}`;if(t.hasExactClass(O.ClassName)||e.hasClassOrSuperclass(ie.ClassName))return`token:${e.valueOf()}`;if(t.hasExactClass(Y.ClassName)||e.hasClassOrSuperclass(Be.ClassName))return`hex:${e.valueOf().toString("hex")}`;if(t.hasExactClass(Z.ClassName)||e.hasClassOrSuperclass(Ne.ClassName))return`codemeta:${e.valueOf().toString()}`;if(t.getName()==="EsdtTokenPayment"){let r=e.getFieldValue("token_identifier").valueOf(),n=e.getFieldValue("token_nonce").valueOf(),a=e.getFieldValue("amount").valueOf();return`asset:${new _e().computeExtendedIdentifier(new ht({identifier:r,nonce:BigInt(n)}))}|${a}`}throw new Error(`WarpArgSerializer (typedToString): Unsupported input type: ${e.getClassName()}`)}typedToNative(e){let t=this.typedToString(e);return this.coreSerializer.stringToNative(t)}nativeToTyped(e,t){let r=this.coreSerializer.nativeToString(e,t);return this.stringToTyped(r)}nativeToType(e){if(e.startsWith("composite")){let t=e.match(/\(([^)]+)\)/)?.[1];return new ee(...t.split(b.ArgCompositeSeparator).map(r=>this.nativeToType(r)))}if(e==="string")return new se;if(e==="uint8")return new ue;if(e==="uint16")return new oe;if(e==="uint32")return new ce;if(e==="uint64")return new M;if(e==="biguint")return new _;if(e==="bool")return new X;if(e==="address")return new K;if(e==="token")return new O;if(e==="hex")return new Y;if(e==="codemeta")return new Z;if(e==="asset")return new Ue("EsdtTokenPayment",[new re("token_identifier","",new O),new re("token_nonce","",new M),new re("amount","",new _)]);throw new Error(`WarpArgSerializer (nativeToType): Unsupported input type: ${e}`)}stringToTyped(e){let[t,r]=e.split(/:(.*)/,2);if(t==="null"||t===null)return new v;if(t==="option"){let n=this.stringToTyped(r);return n instanceof v?ae.newMissingTyped(n.getType()):ae.newProvided(n)}if(t==="optional"){let n=this.stringToTyped(r);return n instanceof v?ne.newMissing():new ne(n.getType(),n)}if(t==="list"){let[n,a]=r.split(qe,2),s=a.split(",").map(c=>this.stringToTyped(`${n}:${c}`));return new Se(this.nativeToType(n),s)}if(t==="variadic"){let[n,a]=r.split(qe,2),s=a.split(",").map(c=>this.stringToTyped(`${n}:${c}`));return new Le(new le(this.nativeToType(n)),s)}if(t.startsWith("composite")){let n=t.match(/\(([^)]+)\)/)?.[1],a=r.split(b.ArgCompositeSeparator),o=n.split(b.ArgCompositeSeparator),s=a.map((p,u)=>this.stringToTyped(`${o[u]}:${p}`)),c=s.map(p=>p.getType());return new Ve(new ee(...c),s)}if(t==="string")return r?Pe.fromUTF8(r):new v;if(t==="uint8")return r?new $e(Number(r)):new v;if(t==="uint16")return r?new Oe(Number(r)):new v;if(t==="uint32")return r?new Me(Number(r)):new v;if(t==="uint64")return r?new pe(BigInt(r)):new v;if(t==="biguint")return r?new J(BigInt(r)):new v;if(t==="bool")return r?new Ie(typeof r=="boolean"?r:r==="true"):new v;if(t==="address")return r?new Ae(mt.newFromBech32(r)):new v;if(t==="token")return r?new ie(r):new v;if(t==="hex")return r?Be.fromHex(r):new v;if(t==="codemeta")return new Ne(dt.newFromBytes(Uint8Array.from(Buffer.from(r,"hex"))));if(t==="asset"){let[n,a]=r.split(b.ArgCompositeSeparator),o=new _e,s=V(n)?U(n):o.extractIdentifierFromExtendedIdentifier(n),c=V(n)?0n:o.extractNonceFromExtendedIdentifier(n);return new ft(this.nativeToType("asset"),[new te(new ie(s),"token_identifier"),new te(new pe(BigInt(c)),"token_nonce"),new te(new J(BigInt(a)),"amount")])}throw new Error(`WarpArgSerializer (stringToTyped): Unsupported input type: ${t}`)}typeToString(e){if(e.hasExactClass(Re.ClassName))return"option:"+this.typeToString(e.getFirstTypeParameter());if(e.hasExactClass(Fe.ClassName))return"optional:"+this.typeToString(e.getFirstTypeParameter());if(e.hasExactClass(ke.ClassName))return"list:"+this.typeToString(e.getFirstTypeParameter());if(e.hasExactClass(le.ClassName))return"variadic:"+this.typeToString(e.getFirstTypeParameter());if(e.hasExactClass(se.ClassName))return"string";if(e.hasExactClass(ue.ClassName))return"uint8";if(e.hasExactClass(oe.ClassName))return"uint16";if(e.hasExactClass(ce.ClassName))return"uint32";if(e.hasExactClass(M.ClassName))return"uint64";if(e.hasExactClass(_.ClassName))return"biguint";if(e.hasExactClass(X.ClassName))return"bool";if(e.hasExactClass(K.ClassName))return"address";if(e.hasExactClass(O.ClassName))return"token";if(e.hasExactClass(Y.ClassName))return"hex";if(e.hasExactClass(Z.ClassName))return"codemeta";if(e.hasExactClass(Ue.ClassName)&&e.getClassName()==="EsdtTokenPayment")return"asset";throw new Error(`WarpArgSerializer (typeToString): Unsupported input type: ${e.getClassName()}`)}};var S=class{constructor(e,t){this.config=e;this.chain=t;this.abi=new B(e,t),this.serializer=new I,this.cache=new Tt(e.cache?.type)}async getTransactionExecutionResults(e,t){let{actionIndex:r}=De(e),n=this.cache.get(vt.WarpExecutable(this.config.env,e.meta?.hash||"",r))??[],a=await this.extractContractResults(e,t,n),o=Wt(this.config,[],e,r,a),s=xt(e,a.results);return{success:t.status.isSuccessful(),warp:e,action:r,user:this.config.user?.wallets?.[this.chain.name]||null,txHash:t.hash,tx:t,next:o,values:a.values,valuesRaw:[],results:a.results,messages:s}}async extractContractResults(e,t,r){let{action:n,actionIndex:a}=De(e),o=[],s={};if(!e.results||n.type!=="contract")return{values:o,results:s};if(!Object.values(e.results).some(h=>h.includes("out")||h.includes("event"))){for(let[h,m]of Object.entries(e.results))s[h]=m;return{values:o,results:await $(e,s,a,r,this.config.transform?.runner)}}let p=await this.abi.getAbiForAction(n),u=new Ct({abi:p}),w=new wt({abi:p}).parseExecute({transactionOnNetwork:t,function:n.func||void 0});for(let[h,m]of Object.entries(e.results)){if(m.startsWith(He.Transform.Prefix))continue;if(m.startsWith("input.")){s[h]=m;continue}let T=ze(m);if(T!==null&&T!==a){s[h]=null;continue}let[C,x,A]=m.split(".");if(C==="event"){if(!x||isNaN(Number(A)))continue;let E=Number(A),y=yt(t,x),k=u.parseEvents({events:y})[0],P=Object.values(k)[E]||null;o.push(P),s[h]=P&&P.valueOf()}else if(C==="out"||C.startsWith("out[")){if(!x)continue;let E=Number(x),y=w.values[E-1]||null;A&&(y=y[A]||null),y&&typeof y=="object"&&(y="toFixed"in y?y.toFixed():y.valueOf()),o.push(y),s[h]=y&&y.valueOf()}else s[h]=m}return{values:o,results:await $(e,s,a,r)}}async extractQueryResults(e,t,r,n){let a=t.map(p=>this.serializer.typedToString(p)),o=t.map(p=>this.serializer.typedToNative(p)[1]),s={};if(!e.results)return{values:a,valuesRaw:o,results:s};let c=p=>{let u=p.split(".").slice(1).map(w=>parseInt(w)-1);if(u.length===0)return;let l=o[u[0]];for(let w=1;w<u.length;w++){if(l==null)return;l=l[u[w]]}return l};for(let[p,u]of Object.entries(e.results)){if(u.startsWith(He.Transform.Prefix))continue;let l=ze(u);if(l!==null&&l!==r){s[p]=null;continue}u.startsWith("out.")||u==="out"||u.startsWith("out[")?s[p]=c(u)||null:s[p]=u}return{values:a,valuesRaw:o,results:await $(e,s,r,n)}}async resolveWarpResultsRecursively(e){let t=e.warp,r=e.entryActionIndex,n=e.executor,a=e.inputs,o=e.meta,s=new Map,c=new Set,p=this;async function u(m,T=[]){if(s.has(m))return s.get(m);if(c.has(m))throw new Error(`Circular dependency detected at action ${m}`);c.add(m);let C=t.actions[m-1];if(!C)throw new Error(`Action ${m} not found`);let x;if(C.type==="query")x=await n.executeQuery(t,m,T);else if(C.type==="collect")x=await n.executeCollect(t,m,T,o);else throw new Error(`Unsupported or interactive action type: ${C.type}`);if(s.set(m,x),t.results)for(let A of Object.values(t.results)){let y=String(A).match(/^out\[(\d+)\]/);if(y){let k=parseInt(y[1],10);k!==m&&!s.has(k)&&await u(k)}}return c.delete(m),x}await u(r,a);let l={};for(let m of s.values())for(let[T,C]of Object.entries(m.results))C!==null?l[T]=C:T in l||(l[T]=null);let w=await $(t,l,r,a,this.config.transform?.runner);return{...s.get(r),action:r,results:w}}};var bt=[{id:"EGLD",name:"eGold",decimals:18},{id:"EGLD-000000",name:"eGold",decimals:18},{id:"VIBE",name:"VIBE",decimals:18},{id:"VIBE-000000",name:"VIBE",decimals:18}],Qe=i=>bt.find(e=>e.id===i)||null;var $t="EGLD-000000",f=class i{constructor(e,t){this.config=e;this.chain=t;this.serializer=new I,this.abi=new B(this.config,this.chain),this.results=new S(this.config,this.chain)}async createTransaction(e){let t=me(e.warp,e.action),r=null;if(t.type==="transfer")r=await this.createTransferTransaction(e);else if(t.type==="contract")r=await this.createContractCallTransaction(e);else{if(t.type==="query")throw new Error("WarpMultiversxExecutor: Invalid action type for createTransactionForExecute; Use executeQuery instead");if(t.type==="collect")throw new Error("WarpMultiversxExecutor: Invalid action type for createTransactionForExecute; Use executeCollect instead")}if(!r)throw new Error(`WarpMultiversxExecutor: Invalid action type (${t.type})`);return r}async createTransferTransaction(e){let t=this.config.user?.wallets?.[e.chain.name];if(!t)throw new Error("WarpMultiversxExecutor: createTransfer - user address not set");let r=F.newFromBech32(t),n=new Ke({chainID:e.chain.chainId}),a=e.data?Buffer.from(this.serializer.stringToTyped(e.data).valueOf()):null;return new St({config:n}).createTransactionForTransfer(r,{receiver:F.newFromBech32(e.destination),nativeAmount:e.value,tokenTransfers:this.toTokenTransfers(e.transfers),data:a?new Uint8Array(a):void 0})}async createContractCallTransaction(e){let t=this.config.user?.wallets?.[e.chain.name];if(!t)throw new Error("WarpMultiversxExecutor: createContractCall - user address not set");let r=me(e.warp,e.action),n=F.newFromBech32(t),a=e.args.map(s=>this.serializer.stringToTyped(s)),o=new Ke({chainID:e.chain.chainId});return new Bt({config:o}).createTransactionForExecute(n,{contract:F.newFromBech32(e.destination),function:"func"in r&&r.func||"",gasLimit:"gasLimit"in r?BigInt(r.gasLimit||0):0n,arguments:a,tokenTransfers:this.toTokenTransfers(e.transfers),nativeTransferAmount:e.value})}async executeQuery(e){let t=me(e.warp,e.action);if(t.type!=="query")throw new Error(`WarpMultiversxExecutor: Invalid action type for executeQuery: ${t.type}`);let r=await this.abi.getAbiForAction(t),n=e.args.map(E=>this.serializer.stringToTyped(E)),a=i.getChainEntrypoint(e.chain,this.config.env,this.config),o=F.newFromBech32(e.destination),s=a.createSmartContractController(r),c=s.createQuery({contract:o,function:t.func||"",arguments:n}),p=await s.runQuery(c),u=p.returnCode==="ok",l=new Et,w=r.getEndpoint(p.function||t.func||""),h=(p.returnDataParts||[]).map(E=>Buffer.from(E)),m=l.buffersToValues(h,w.output),{values:T,valuesRaw:C,results:x}=await this.results.extractQueryResults(e.warp,m,e.action,e.resolvedInputs),A=Ut(this.config,[],e.warp,e.action,x);return{success:u,warp:e.warp,action:e.action,user:this.config.user?.wallets?.[e.chain.name]||null,txHash:null,tx:null,next:A,values:T,valuesRaw:C,results:x,messages:Rt(e.warp,x)}}async preprocessInput(e,t,r,n){if(r==="asset"){let[a,o,s]=n.split(Mt.ArgCompositeSeparator);if(s)return t;let c=new je,p=V(a)?0n:c.extractNonceFromExtendedIdentifier(a),u=new Ge({identifier:a,nonce:BigInt(p||0)});if(!c.isFungible(u))return t;let w=Qe(a),h=w?.decimals;if(h||(h=(await(await fetch(`${e.defaultApiUrl}/tokens/${a}`)).json()).decimals),!h)throw new Error(`WarpMultiversxExecutor: Decimals not found for token ${a}`);let m=Ot(o,h),T=w?.name||a;return Pt({chain:e.name,identifier:a,name:T,amount:m,decimals:h})}return t}static getChainEntrypoint(e,t,r){let n="warp-sdk",o=r?_t(r,e.name,t,e.defaultApiUrl):e.defaultApiUrl;return t==="devnet"?new At({url:o,kind:"api",clientName:n}):t==="testnet"?new Nt({url:o,kind:"api",clientName:n}):new It({url:o,kind:"api",clientName:n})}async signMessage(e,t){let r=kt.fromString(t);return(await new Ft(r).sign(new Uint8Array(Buffer.from(e,"utf-8")))).toString()}toTokenTransfers(e){return e.map(t=>t.identifier===this.chain.nativeToken.identifier?{...t,identifier:$t}:t).map(t=>{let n=new je().extractNonceFromExtendedIdentifier(t.identifier);return new Vt({token:new Ge({identifier:t.identifier,nonce:BigInt(n||0)}),amount:t.amount})})}};var L=class{constructor(e){this.config=e}async getContract(e,t){try{let a=await f.getChainEntrypoint(t,this.config.env).createNetworkProvider().doGetGeneric(`accounts/${e}`);return{address:e,owner:a.ownerAddress,verified:a.isVerified||!1}}catch(r){return Je.error("WarpContractLoader: getContract error",r),null}}async getVerificationInfo(e,t){try{let a=await f.getChainEntrypoint(t,this.config.env).createNetworkProvider().doGetGeneric(`accounts/${e}/verification`);return{codeHash:a.codeHash,abi:a.source.abi}}catch(r){return Je.error("WarpContractLoader: getVerificationInfo error",r),null}}};var B=class{constructor(e,t){this.config=e;this.chain=t;this.contractLoader=new L(this.config),this.cache=new Lt(this.config.cache?.type)}async createFromRaw(e){return JSON.parse(e)}async createFromTransaction(e){let t=await this.createFromRaw(e.data.toString());return t.meta={chain:this.chain.name,hash:e.hash,creator:e.sender.toBech32(),createdAt:new Date(e.timestamp*1e3).toISOString()},t}async createFromTransactionHash(e,t){let r=qt.WarpAbi(this.config.env,e);if(t){let o=this.cache.get(r);if(o)return Ye.info(`WarpAbiBuilder (createFromTransactionHash): Warp abi found in cache: ${e}`),o}let a=f.getChainEntrypoint(this.chain,this.config.env).createNetworkProvider();try{let o=await a.getTransaction(e),s=await this.createFromTransaction(o);return t&&t.ttl&&s&&this.cache.set(r,s,t.ttl),s}catch(o){return Ye.error("WarpAbiBuilder: Error creating from transaction hash",o),null}}async getAbiForAction(e){if(e.abi)return await this.fetchAbi(e);if(!e.address)throw new Error("WarpActionExecutor: Address not found");let t=await this.contractLoader.getVerificationInfo(e.address,this.chain);if(!t)throw new Error("WarpActionExecutor: Verification info not found");return de.create(t.abi)}async fetchAbi(e){if(!e.abi)throw new Error("WarpActionExecutor: ABI not found");if(e.abi.startsWith(Xe.IdentifierType.Hash)){let t=e.abi.split(Xe.IdentifierParamSeparatorDefault)[1],r=await this.createFromTransactionHash(t);if(!r)throw new Error(`WarpActionExecutor: ABI not found for hash: ${e.abi}`);return de.create(r.content)}else{let r=await(await fetch(e.abi)).json();return de.create(r)}}};import{Address as Ze,TransactionsFactoryConfig as Dt,TransferTransactionsFactory as zt}from"@multiversx/sdk-core";import{WarpBrandBuilder as Ht,WarpLogger as Qt}from"@vleap/warps";import{Buffer as Gt}from"buffer";var q=class{constructor(e,t){this.config=e;this.chain=t;this.core=new Ht(e)}async createInscriptionTransaction(e){let t=this.config.user?.wallets?.[this.chain.name];if(!t)throw new Error("BrandBuilder: user address not set");let r=new Dt({chainID:this.chain.chainId}),n=new zt({config:r}),a=Ze.newFromBech32(t),o=JSON.stringify(e);return await n.createTransactionForNativeTokenTransfer(a,{receiver:Ze.newFromBech32(t),nativeAmount:BigInt(0),data:Uint8Array.from(Gt.from(o))})}async createFromTransaction(e,t=!1){return await this.core.createFromRaw(e.data.toString(),t)}async createFromTransactionHash(e){let r=f.getChainEntrypoint(this.chain,this.config.env).createNetworkProvider();try{let n=await r.getTransaction(e);return this.createFromTransaction(n)}catch(n){return Qt.error("BrandBuilder: Error creating from transaction hash",n),null}}};import{Address as et,TransactionsFactoryConfig as jt,TransferTransactionsFactory as Kt}from"@multiversx/sdk-core";import{WarpBuilder as tt,WarpCache as Jt,WarpCacheKey as Xt,WarpLogger as rt}from"@vleap/warps";var D=class extends tt{constructor(t,r){super(t);this.config=t;this.chain=r;this.cache=new Jt(t.cache?.type),this.core=new tt(t)}async createInscriptionTransaction(t){let r=this.config.user?.wallets?.[this.chain.name];if(!r)throw new Error("WarpBuilder: user address not set");let n=new jt({chainID:this.chain.chainId}),a=new Kt({config:n}),o=et.newFromBech32(r),s=JSON.stringify(t),c=await a.createTransactionForTransfer(o,{receiver:et.newFromBech32(r),nativeAmount:BigInt(0),data:Uint8Array.from(Buffer.from(s))});return c.gasLimit=c.gasLimit+BigInt(2e6),c}async createFromTransaction(t,r=!1){let n=await this.core.createFromRaw(t.data.toString(),r);return n.meta={chain:this.chain.name,hash:t.hash,creator:t.sender.toBech32(),createdAt:new Date(t.timestamp*1e3).toISOString()},n}async createFromTransactionHash(t,r){let n=Xt.Warp(this.config.env,t);if(r){let s=this.cache.get(n);if(s)return rt.info(`WarpBuilder (createFromTransactionHash): Warp found in cache: ${t}`),s}let o=f.getChainEntrypoint(this.chain,this.config.env).createNetworkProvider();try{let s=await o.getTransaction(t),c=await this.createFromTransaction(s);return r&&r.ttl&&c&&this.cache.set(n,c,r.ttl),c}catch(s){return rt.error("WarpBuilder: Error creating from transaction hash",s),null}}};import{Address as fe}from"@multiversx/sdk-core";var z=class{constructor(e,t){this.config=e;this.chain=t}async getAccount(e){let r=await f.getChainEntrypoint(this.chain,this.config.env,this.config).createNetworkProvider().getAccount(fe.newFromBech32(e));return{chain:this.chain.name,address:r.address.toBech32(),balance:r.balance}}async getAccountAssets(e){let t=f.getChainEntrypoint(this.chain,this.config.env,this.config).createNetworkProvider(),r=t.getAccount(fe.newFromBech32(e)),n=t.getFungibleTokensOfAccount(fe.newFromBech32(e)),[a,o]=await Promise.all([r,n]),s=a.balance>0?[{...this.chain.nativeToken,amount:a.balance}]:[];return s.push(...o.map(c=>({chain:this.chain.name,identifier:c.token.identifier,name:c.raw.name,amount:c.amount,decimals:c.raw.decimals,logoUrl:c.raw.assets?.pngUrl||""}))),s}async getAsset(e){let t=f.getChainEntrypoint(this.chain,this.config.env,this.config).createNetworkProvider(),r=U(e),n=await t.doGetGeneric(`tokens/${r}`);return{chain:this.chain.name,identifier:n.identifier,name:n.name,amount:n.amount,decimals:n.decimals,logoUrl:n.assets?.pngUrl||""}}async getAction(e,t=!1){let r=f.getChainEntrypoint(this.chain,this.config.env,this.config),n=t?await r.awaitCompletedTransaction(e):await r.getTransaction(e);return{chain:this.chain.name,id:n.hash,receiver:n.receiver.toBech32(),sender:n.sender.toBech32(),value:n.value,function:n.function,status:this.toActionStatus(n),createdAt:this.toActionCreatedAt(n),error:n?.smartContractResults.map(a=>a.raw.returnMessage)[0]||null,tx:n}}async getAccountActions(e,t){let r=f.getChainEntrypoint(this.chain,this.config.env,this.config).createNetworkProvider(),n=`accounts/${e}/transactions`,a=new URLSearchParams,o=t?.size||25,s=t?.page||0;if(s>0){let p=s*o;a.append("from",p.toString())}return o!==25&&a.append("size",o.toString()),a.toString()&&(n+=`?${a.toString()}`),(await r.doGetGeneric(n)).map(p=>({chain:this.chain.name,id:p.txHash,receiver:p.receiver,sender:p.sender,value:p.value,function:p.function,status:this.toActionStatus(p),createdAt:this.toActionCreatedAt(p)}))}toActionStatus(e){return e.status.isSuccessful()?"success":e.status.isFailed()?"failed":"pending"}toActionCreatedAt(e){return new Date(e.timestamp||e.timestamp*1e3).toISOString()}};var ma={Egld:{Identifier:"EGLD",EsdtIdentifier:"EGLD-000000",DisplayName:"eGold",Decimals:18}},Yt=(r=>(r.MultiversxExplorer="multiversx_explorer",r.MultiversxExplorerDevnet="multiversx_explorer_devnet",r.MultiversxExplorerTestnet="multiversx_explorer_testnet",r))(Yt||{}),Zt=(r=>(r.VibechainExplorer="vibechain_explorer",r.VibechainExplorerDevnet="vibechain_explorer_devnet",r.VibechainExplorerTestnet="vibechain_explorer_testnet",r))(Zt||{}),nt={multiversx:{mainnet:["multiversx_explorer"],testnet:["multiversx_explorer_testnet"],devnet:["multiversx_explorer_devnet"]},vibechain:{mainnet:["vibechain_explorer"],testnet:["vibechain_explorer_testnet"],devnet:["vibechain_explorer_devnet"]}},N={multiversx_explorer:"https://explorer.multiversx.com",multiversx_explorer_devnet:"https://devnet-explorer.multiversx.com",multiversx_explorer_testnet:"https://testnet-explorer.multiversx.com",vibechain_explorer:"https://vibeox-explorer.multiversx.com",vibechain_explorer_devnet:"https://vibeox-explorer.multiversx.com",vibechain_explorer_testnet:"https://vibeox-explorer.multiversx.com"};var H=class{constructor(e,t){this.chain=e;this.config=t}getExplorers(){let e=nt[this.chain];if(!e)return["multiversx_explorer"];let t=e[this.config.env];return t||["multiversx_explorer"]}getPrimaryExplorer(){return this.getExplorers()[0]}getExplorerUrlByName(e){let t=this.config.preferences?.explorers?.[this.chain];if(t&&!e){let a=N[t];if(a)return a}if(e){let a=N[e];if(a)return a}let r=this.getPrimaryExplorer();return N[r]||N[r]}getAccountUrl(e,t){return`${this.getExplorerUrlByName(t)}/accounts/${e}`}getTransactionUrl(e,t){return`${this.getExplorerUrlByName(t)}/transactions/${e}`}getBlockUrl(e,t){return`${this.getExplorerUrlByName(t)}/blocks/${e}`}getAssetUrl(e,t){return`${this.getExplorerUrlByName(t)}/tokens/${e}`}getContractUrl(e,t){return`${this.getExplorerUrlByName(t)}/accounts/${e}`}getAllExplorers(){return this.getExplorers()}getExplorerByName(e){return this.getExplorers().find(r=>r.toLowerCase()===e.toLowerCase())}getAccountUrls(e){let t=this.getAllExplorers(),r={};return t.forEach(n=>{let a=N[n];a&&(r[n]=`${a}/accounts/${e}`)}),r}getTransactionUrls(e){let t=this.getAllExplorers(),r={};return t.forEach(n=>{let a=N[n];a&&(r[n]=`${a}/transactions/${e}`)}),r}};import{AbiRegistry as st,Address as d,AddressValue as ge,BytesValue as g,SmartContractTransactionsFactory as tr,TransactionsFactoryConfig as rr}from"@multiversx/sdk-core";import{WarpCache as nr,WarpCacheKey as ye,WarpLogger as we}from"@vleap/warps";var he={buildInfo:{rustc:{version:"1.86.0",commitHash:"05f9846f893b09a1be1fc8560e33fc3c815cfecb",commitDate:"2025-03-31",channel:"Stable",short:"rustc 1.86.0 (05f9846f8 2025-03-31)"},contractCrate:{name:"registry",version:"0.0.1"},framework:{name:"multiversx-sc",version:"0.51.1"}},name:"RegistryContract",constructor:{inputs:[{name:"unit_price",type:"BigUint"},{name:"vault",type:"Address"}],outputs:[]},upgradeConstructor:{inputs:[],outputs:[]},endpoints:[{name:"registerWarp",mutability:"mutable",payableInTokens:["EGLD"],inputs:[{name:"hash",type:"bytes"},{name:"alias_opt",type:"optional<bytes>",multi_arg:!0},{name:"brand_opt",type:"optional<bytes>",multi_arg:!0}],outputs:[],allow_multiple_var_args:!0},{name:"unregisterWarp",mutability:"mutable",inputs:[{name:"warp",type:"bytes"}],outputs:[]},{name:"upgradeWarp",mutability:"mutable",payableInTokens:["EGLD"],inputs:[{name:"alias",type:"bytes"},{name:"new_warp",type:"bytes"}],outputs:[]},{name:"setWarpAlias",mutability:"mutable",payableInTokens:["EGLD"],inputs:[{name:"hash",type:"bytes"},{name:"alias",type:"bytes"}],outputs:[]},{name:"forceRemoveAlias",mutability:"mutable",inputs:[{name:"hash",type:"bytes"}],outputs:[]},{name:"verifyWarp",mutability:"mutable",inputs:[{name:"warp",type:"bytes"}],outputs:[]},{name:"transferOwnership",mutability:"mutable",inputs:[{name:"warp",type:"bytes"},{name:"new_owner",type:"Address"}],outputs:[]},{name:"getUserWarps",mutability:"readonly",inputs:[{name:"address",type:"Address"}],outputs:[{type:"variadic<InfoView>",multi_result:!0}]},{name:"getInfoByAlias",mutability:"readonly",inputs:[{name:"alias",type:"bytes"}],outputs:[{type:"InfoView"}]},{name:"getInfoByHash",mutability:"readonly",inputs:[{name:"hash",type:"bytes"}],outputs:[{type:"InfoView"}]},{name:"setVault",onlyOwner:!0,mutability:"mutable",inputs:[{name:"vault",type:"Address"}],outputs:[]},{name:"setUnitPrice",onlyOwner:!0,mutability:"mutable",inputs:[{name:"amount",type:"BigUint"}],outputs:[]},{name:"addAdmin",onlyOwner:!0,mutability:"mutable",inputs:[{name:"address",type:"Address"}],outputs:[]},{name:"removeAdmin",onlyOwner:!0,mutability:"mutable",inputs:[{name:"address",type:"Address"}],outputs:[]},{name:"getConfig",mutability:"readonly",inputs:[],outputs:[{type:"ConfigView"}]},{name:"registerBrand",mutability:"mutable",payableInTokens:["EGLD"],inputs:[{name:"hash",type:"bytes"}],outputs:[]},{name:"brandWarp",mutability:"mutable",payableInTokens:["EGLD"],inputs:[{name:"warp",type:"bytes"},{name:"brand",type:"bytes"}],outputs:[]},{name:"getUserBrands",mutability:"readonly",inputs:[{name:"user",type:"Address"}],outputs:[{type:"variadic<bytes>",multi_result:!0}]},{name:"setChain",onlyOwner:!0,mutability:"mutable",inputs:[{name:"name",type:"bytes"},{name:"display_name",type:"bytes"},{name:"chain_id",type:"bytes"},{name:"block_time",type:"u32"},{name:"address_hrp",type:"bytes"},{name:"api_url",type:"bytes"},{name:"explorer_url",type:"bytes"},{name:"native_token",type:"bytes"}],outputs:[]},{name:"removeChain",onlyOwner:!0,mutability:"mutable",inputs:[{name:"name",type:"bytes"}],outputs:[]},{name:"getChain",mutability:"readonly",inputs:[{name:"name",type:"bytes"}],outputs:[{type:"ChainView"}]},{name:"getChains",mutability:"readonly",inputs:[],outputs:[{type:"variadic<ChainView>",multi_result:!0}]}],events:[{identifier:"warpRegistered",inputs:[{name:"hash",type:"bytes",indexed:!0},{name:"alias",type:"bytes",indexed:!0},{name:"trust",type:"bytes",indexed:!0}]},{identifier:"warpUnregistered",inputs:[{name:"hash",type:"bytes",indexed:!0}]},{identifier:"warpUpgraded",inputs:[{name:"alias",type:"bytes",indexed:!0},{name:"new_warp",type:"bytes",indexed:!0},{name:"trust",type:"bytes",indexed:!0}]},{identifier:"warpVerified",inputs:[{name:"hash",type:"bytes",indexed:!0}]},{identifier:"aliasUpdated",inputs:[{name:"hash",type:"bytes",indexed:!0},{name:"alias",type:"bytes",indexed:!0}]},{identifier:"ownershipTransferred",inputs:[{name:"warp",type:"bytes",indexed:!0},{name:"old_owner",type:"Address",indexed:!0},{name:"new_owner",type:"Address",indexed:!0}]}],esdtAttributes:[],hasCallback:!1,types:{ChainView:{type:"struct",fields:[{name:"name",type:"bytes"},{name:"display_name",type:"bytes"},{name:"chain_id",type:"bytes"},{name:"block_time",type:"u32"},{name:"address_hrp",type:"bytes"},{name:"api_url",type:"bytes"},{name:"explorer_url",type:"bytes"},{name:"native_token",type:"bytes"}]},ConfigView:{type:"struct",fields:[{name:"unit_price",type:"BigUint"},{name:"admins",type:"List<Address>"}]},InfoView:{type:"struct",fields:[{name:"hash",type:"bytes"},{name:"alias",type:"Option<bytes>"},{name:"trust",type:"bytes"},{name:"owner",type:"Address"},{name:"created_at",type:"u64"},{name:"upgraded_at",type:"u64"},{name:"brand",type:"Option<bytes>"},{name:"upgrade",type:"Option<bytes>"}]}}};var W=i=>{if(i==="devnet")return"erd1qqqqqqqqqqqqqpgqje2f99vr6r7sk54thg03c9suzcvwr4nfl3tsfkdl36";if(i==="testnet")throw new Error("Multiversx testnet is not supported");return"erd1qqqqqqqqqqqqqpgq3mrpj3u6q7tejv6d7eqhnyd27n9v5c5tl3ts08mffe"};var Q=i=>({hash:i.hash.toString("hex"),alias:i.alias?.toString()||null,trust:i.trust.toString(),owner:i.owner.toString(),createdAt:i.created_at.toNumber(),upgradedAt:i.upgraded_at?.toNumber(),brand:i.brand?.toString("hex")||null,upgrade:i.upgrade?.toString("hex")||null}),at=i=>({unitPrice:BigInt(i.unit_price.toString()),admins:i.admins.map(e=>e.toBech32())});var G=class{constructor(e,t){this.config=e;this.chain=t;this.cache=new nr(e.cache?.type),this.registryConfig={unitPrice:BigInt(0),admins:[]},this.userWallet=this.config.user?.wallets?.[this.chain.name]||null}async init(){await this.loadRegistryConfigs()}getRegistryConfig(){return this.registryConfig}async createWarpRegisterTransaction(e,t,r){if(this.registryConfig.unitPrice===BigInt(0))throw new Error("WarpRegistry: config not loaded. forgot to call init()?");if(!this.userWallet)throw new Error("WarpRegistry: user address not set");let n=d.newFromBech32(this.userWallet),a=()=>this.isCurrentUserAdmin()?BigInt(0):t&&r?this.registryConfig.unitPrice*BigInt(3):t?this.registryConfig.unitPrice*BigInt(2):this.registryConfig.unitPrice,o=()=>t&&r?[g.fromHex(e),g.fromUTF8(t),g.fromHex(r)]:t?[g.fromHex(e),g.fromUTF8(t)]:[g.fromHex(e)];return await this.getFactory().createTransactionForExecute(n,{contract:d.newFromBech32(W(this.config.env)),function:"registerWarp",gasLimit:BigInt(1e7),nativeTransferAmount:a(),arguments:o()})}async createWarpUnregisterTransaction(e){if(!this.userWallet)throw new Error("WarpRegistry: user address not set");let t=d.newFromBech32(this.userWallet);return await this.getFactory().createTransactionForExecute(t,{contract:d.newFromBech32(W(this.config.env)),function:"unregisterWarp",gasLimit:BigInt(1e7),arguments:[g.fromHex(e)]})}async createWarpUpgradeTransaction(e,t){if(this.registryConfig.unitPrice===BigInt(0))throw new Error("WarpRegistry: config not loaded. forgot to call init()?");if(!this.userWallet)throw new Error("WarpRegistry: user address not set");let r=d.newFromBech32(this.userWallet);return await this.getFactory().createTransactionForExecute(r,{contract:d.newFromBech32(W(this.config.env)),function:"upgradeWarp",gasLimit:BigInt(1e7),nativeTransferAmount:this.isCurrentUserAdmin()?void 0:this.registryConfig.unitPrice,arguments:[g.fromUTF8(e),g.fromHex(t)]})}async createWarpAliasSetTransaction(e,t){if(!this.userWallet)throw new Error("WarpRegistry: user address not set");let r=d.newFromBech32(this.userWallet);return await this.getFactory().createTransactionForExecute(r,{contract:d.newFromBech32(W(this.config.env)),function:"setWarpAlias",gasLimit:BigInt(1e7),nativeTransferAmount:this.isCurrentUserAdmin()?void 0:this.registryConfig.unitPrice,arguments:[g.fromHex(e),g.fromUTF8(t)]})}async createWarpVerifyTransaction(e){if(!this.userWallet)throw new Error("WarpRegistry: user address not set");let t=d.newFromBech32(this.userWallet);return await this.getFactory().createTransactionForExecute(t,{contract:d.newFromBech32(W(this.config.env)),function:"verifyWarp",gasLimit:BigInt(1e7),arguments:[g.fromHex(e)]})}async createWarpTransferOwnershipTransaction(e,t){if(!this.userWallet)throw new Error("WarpRegistry: user address not set");let r=d.newFromBech32(this.userWallet);return await this.getFactory().createTransactionForExecute(r,{contract:d.newFromBech32(W(this.config.env)),function:"transferOwnership",gasLimit:BigInt(1e7),arguments:[g.fromHex(e),new ge(new d(t))]})}async createBrandRegisterTransaction(e){if(this.registryConfig.unitPrice===BigInt(0))throw new Error("WarpRegistry: config not loaded. forgot to call init()?");if(!this.userWallet)throw new Error("WarpRegistry: user address not set");let t=d.newFromBech32(this.userWallet);return await this.getFactory().createTransactionForExecute(t,{contract:d.newFromBech32(W(this.config.env)),function:"registerBrand",gasLimit:BigInt(1e7),nativeTransferAmount:this.isCurrentUserAdmin()?void 0:this.registryConfig.unitPrice,arguments:[g.fromHex(e)]})}async createWarpBrandingTransaction(e,t){if(!this.userWallet)throw new Error("WarpRegistry: user address not set");let r=d.newFromBech32(this.userWallet);return await this.getFactory().createTransactionForExecute(r,{contract:d.newFromBech32(W(this.config.env)),function:"brandWarp",gasLimit:BigInt(1e7),nativeTransferAmount:this.isCurrentUserAdmin()?void 0:this.registryConfig.unitPrice,arguments:[g.fromHex(e),g.fromHex(t)]})}async getInfoByAlias(e,t){try{let r=ye.RegistryInfo(this.config.env,e),n=t?this.cache.get(r):null;if(n)return we.info(`WarpRegistry (getInfoByAlias): RegistryInfo found in cache: ${e}`),n;let a=d.newFromBech32(W(this.config.env)),o=this.getController(),s=o.createQuery({contract:a,function:"getInfoByAlias",arguments:[g.fromUTF8(e)]}),c=await o.runQuery(s),[p]=o.parseQueryResponse(c),u=p?Q(p):null,l=u?.brand?await this.fetchBrand(u.brand):null;return t&&t.ttl&&this.cache.set(r,{registryInfo:u,brand:l},t.ttl),{registryInfo:u,brand:l}}catch{return{registryInfo:null,brand:null}}}async getInfoByHash(e,t){try{let r=ye.RegistryInfo(this.config.env,e);if(t){let l=this.cache.get(r);if(l)return we.info(`WarpRegistry (getInfoByHash): RegistryInfo found in cache: ${e}`),l}let n=d.newFromBech32(W(this.config.env)),a=this.getController(),o=a.createQuery({contract:n,function:"getInfoByHash",arguments:[g.fromHex(e)]}),s=await a.runQuery(o),[c]=a.parseQueryResponse(s),p=c?Q(c):null,u=p?.brand?await this.fetchBrand(p.brand):null;return t&&t.ttl&&this.cache.set(r,{registryInfo:p,brand:u},t.ttl),{registryInfo:p,brand:u}}catch{return{registryInfo:null,brand:null}}}async getUserWarpRegistryInfos(e){try{let t=e||this.userWallet;if(!t)throw new Error("WarpRegistry: user address not set");let r=d.newFromBech32(W(this.config.env)),n=this.getController(),a=n.createQuery({contract:r,function:"getUserWarps",arguments:[new ge(new d(t))]}),o=await n.runQuery(a),[s]=n.parseQueryResponse(o);return s.map(Q)}catch{return[]}}async getUserBrands(e){try{let t=e||this.userWallet;if(!t)throw new Error("WarpRegistry: user address not set");let r=d.newFromBech32(W(this.config.env)),n=this.getController(),a=n.createQuery({contract:r,function:"getUserBrands",arguments:[new ge(new d(t))]}),o=await n.runQuery(a),[s]=n.parseQueryResponse(o),c=s.map(l=>l.toString("hex")),p={ttl:365*24*60*60};return(await Promise.all(c.map(l=>this.fetchBrand(l,p)))).filter(l=>l!==null)}catch{return[]}}async fetchBrand(e,t){let r=ye.Brand(this.config.env,e),n=t?this.cache.get(r):null;if(n)return we.info(`WarpRegistry (fetchBrand): Brand found in cache: ${e}`),n;let o=f.getChainEntrypoint(this.chain,this.config.env).createNetworkProvider();try{let s=await o.getTransaction(e),c=JSON.parse(s.data.toString());return c.meta={hash:s.hash,creator:s.sender.toBech32(),createdAt:new Date(s.timestamp*1e3).toISOString()},t&&t.ttl&&this.cache.set(r,c,t.ttl),c}catch{return null}}async loadRegistryConfigs(){let e=d.newFromBech32(W(this.config.env)),t=this.getController(),[r]=await t.query({contract:e,function:"getConfig",arguments:[]}),n=r?at(r):null;this.registryConfig=n||{unitPrice:BigInt(0),admins:[]}}getFactory(){let e=new rr({chainID:this.chain.chainId}),t=st.create(he);return new tr({config:e,abi:t})}getController(){let e=f.getChainEntrypoint(this.chain,this.config.env),t=st.create(he);return e.createSmartContractController(t)}isCurrentUserAdmin(){return!!this.userWallet&&this.registryConfig.admins.includes(this.userWallet)}};var j=(i,e,t)=>(r,n)=>{let a=t[r.env];return{chain:i,chainInfo:a,prefix:e,builder:()=>new D(r,a),executor:new f(r,a),results:new S(r,a),serializer:new I,registry:new G(r,a),explorer:new H(i,r),abiBuilder:()=>new B(r,a),brandBuilder:()=>new q(r,a),dataLoader:new z(r,a),registerTypes:o=>{o.registerType("token",{stringToNative:s=>s,nativeToString:s=>`token:${s}`}),o.registerType("codemeta",{stringToNative:s=>s,nativeToString:s=>`codemeta:${s}`})}}};var Ce={chain:R.Multiversx,identifier:"EGLD",name:"eGold",decimals:18,logoUrl:"https://vleap.ai/images/tokens/egld.svg"},it=j(R.Multiversx,"mvx",{mainnet:{name:R.Multiversx,displayName:"MultiversX",chainId:"1",blockTime:6e3,addressHrp:"erd",defaultApiUrl:"https://api.multiversx.com",nativeToken:Ce},testnet:{name:R.Multiversx,displayName:"MultiversX Testnet",chainId:"T",blockTime:6e3,addressHrp:"erd",defaultApiUrl:"https://testnet-api.multiversx.com",nativeToken:Ce},devnet:{name:R.Multiversx,displayName:"MultiversX Devnet",chainId:"D",blockTime:6e3,addressHrp:"erd",defaultApiUrl:"https://devnet-api.multiversx.com",nativeToken:Ce}});import{WarpChainName as We}from"@vleap/warps";var ar={chain:We.Vibechain,identifier:"VIBE",name:"VIBE",decimals:18,logoUrl:"https://vleap.ai/images/tokens/vibe.svg"},xe={name:We.Vibechain,displayName:"VibeChain",chainId:"V",blockTime:600,addressHrp:"vibe",defaultApiUrl:"https://vibeox-api.multiversx.com",nativeToken:ar},ot=j(We.Vibechain,"vibe",{mainnet:xe,testnet:xe,devnet:xe});var os=(i,e)=>[it(i,e),ot(i,e)],cs=()=>[ct.Multiversx,ct.Vibechain];import{Address as sr,AddressValue as ir,BigUIntType as or,BigUIntValue as pt,BooleanValue as cr,BytesValue as pr,CodeMetadata as ur,CodeMetadataValue as lr,CompositeType as mr,CompositeValue as dr,Field as Te,FieldDefinition as ve,List as fr,NothingValue as hr,OptionalValue as be,OptionValue as Ee,StringValue as gr,Struct as yr,StructType as wr,TokenIdentifierType as Cr,TokenIdentifierValue as ut,U16Value as xr,U32Value as Wr,U64Type as Tr,U64Value as lt,U8Value as vr,VariadicValue as br}from"@multiversx/sdk-core";var Cs=(i,e)=>i?Ee.newProvided(i):e?Ee.newMissingTyped(e):Ee.newMissing(),xs=(i,e)=>i?new be(i.getType(),i):e?new be(e):be.newMissing(),Ws=i=>{if(i.length===0)throw new Error("Cannot create a list from an empty array");let e=i[0].getType();return new fr(e,i)},Ts=i=>br.fromItems(...i),vs=i=>{let e=i.map(t=>t.getType());return new dr(new mr(...e),i)},bs=i=>gr.fromUTF8(i),Es=i=>new vr(i),As=i=>new xr(i),Is=i=>new Wr(i),Bs=i=>new lt(i),Ns=i=>new pt(BigInt(i)),Vs=i=>new cr(i),Ss=i=>new ir(sr.newFromBech32(i)),ks=i=>new ut(i),Fs=i=>pr.fromHex(i),Rs=i=>new yr(new wr("EsdtTokenPayment",[new ve("token_identifier","",new Cr),new ve("token_nonce","",new Tr),new ve("amount","",new or)]),[new Te(new ut(i.token.identifier),"token_identifier"),new Te(new lt(BigInt(i.token.nonce)),"token_nonce"),new Te(new pt(BigInt(i.amount)),"amount")]),Ps=i=>new lr(ur.newFromBytes(Uint8Array.from(Buffer.from(i,"hex")))),Us=()=>new hr;export{N as ExplorerUrls,bt as KnownTokens,Yt as MultiversxExplorers,nt as MultiversxExplorersConfig,Ce as NativeTokenEgld,ar as NativeTokenVibe,Zt as VibechainExplorers,B as WarpMultiversxAbiBuilder,q as WarpMultiversxBrandBuilder,D as WarpMultiversxBuilder,ma as WarpMultiversxConstants,L as WarpMultiversxContractLoader,z as WarpMultiversxDataLoader,f as WarpMultiversxExecutor,H as WarpMultiversxExplorer,G as WarpMultiversxRegistry,S as WarpMultiversxResults,I as WarpMultiversxSerializer,Ss as address_value,Rs as asset_value,Ns as biguint_value,Vs as boolean_value,Ps as codemeta_value,vs as composite_value,j as createMultiversxAdapter,Qe as findKnownTokenById,os as getAllMultiversxAdapters,cs as getAllMultiversxChainNames,it as getMultiversxAdapter,W as getMultiversxRegistryAddress,ot as getVibechainAdapter,Fs as hex_value,Ws as list_value,Us as nothing_value,Cs as option_value,xs as optional_value,bs as string_value,ks as token_value,As as u16_value,Is as u32_value,Bs as u64_value,Es as u8_value,Ts as variadic_value};
|
|
1
|
+
import{WarpChainName as ot}from"@vleap/warps";import{WarpChainName as R}from"@vleap/warps";import{AbiRegistry as he,Address as Ot,TransactionsFactoryConfig as Mt,TransferTransactionsFactory as $t}from"@multiversx/sdk-core";import{getLatestProtocolIdentifier as Lt,WarpCache as Dt,WarpCacheKey as qt,WarpConstants as Ke,WarpLogger as Je}from"@vleap/warps";import{WarpLogger as je}from"@vleap/warps";import{Address as F,ArgSerializer as vt,DevnetEntrypoint as bt,MainnetEntrypoint as Et,SmartContractTransactionsFactory as At,TestnetEntrypoint as Bt,Token as It,TokenComputer as Nt,TokenTransfer as Vt,TransactionsFactoryConfig as Qe,TransferTransactionsFactory as St,UserSecretKey as kt,UserSigner as Ft}from"@multiversx/sdk-core";import{applyResultsToMessages as Rt,getNextInfo as Ut,getProviderUrl as Pt,getWarpActionByIndex as de}from"@vleap/warps";import{findEventsByFirstTopic as gt,SmartContractTransactionsOutcomeParser as yt,TransactionEventsParser as wt}from"@multiversx/sdk-core";import{applyResultsToMessages as Ct,evaluateResultsCommon as $,findWarpExecutableAction as ze,getNextInfo as xt,parseResultsOutIndex as He,WarpCache as Wt,WarpCacheKey as Tt,WarpConstants as Ge}from"@vleap/warps";import{Address as ut,AddressType as J,AddressValue as Be,BigUIntType as _,BigUIntValue as X,BooleanType as Y,BooleanValue as Ie,BytesType as Z,BytesValue as Ne,CodeMetadata as mt,CodeMetadataType as ee,CodeMetadataValue as Ve,CompositeType as te,CompositeValue as Se,Field as re,FieldDefinition as ne,List as ke,ListType as Fe,NothingValue as T,OptionalType as Re,OptionalValue as ae,OptionType as Ue,OptionValue as se,StringType as ie,StringValue as Pe,Struct as dt,StructType as _e,Token as ht,TokenComputer as Oe,TokenIdentifierType as O,TokenIdentifierValue as oe,U16Type as ce,U16Value as Me,U32Type as pe,U32Value as $e,U64Type as M,U64Value as le,U8Type as ue,U8Value as Le,VariadicType as me,VariadicValue as De}from"@multiversx/sdk-core";import{WarpConstants as v,WarpSerializer as ft}from"@vleap/warps";var V=i=>!i.includes("-"),P=i=>V(i)?`${i}-000000`:i;var qe=new RegExp(`${v.ArgParamsSeparator}(.*)`),B=class{constructor(){this.coreSerializer=new ft}typedToString(e){let t=e.getType();if(t.hasExactClass(Ue.ClassName)||e.hasClassOrSuperclass(se.ClassName))return e.isSet()?`option:${this.typedToString(e.getTypedValue())}`:"option:null";if(t.hasExactClass(Re.ClassName)||e.hasClassOrSuperclass(ae.ClassName))return e.isSet()?`optional:${this.typedToString(e.getTypedValue())}`:"optional:null";if(t.hasExactClass(Fe.ClassName)||e.hasClassOrSuperclass(ke.ClassName)){let r=e.getItems(),a=r.map(s=>this.typedToString(s).split(v.ArgParamsSeparator)[0])[0],o=r.map(s=>this.typedToString(s).split(v.ArgParamsSeparator)[1]);return`list:${a}:${o.join(",")}`}if(t.hasExactClass(me.ClassName)||e.hasClassOrSuperclass(De.ClassName)){let r=e.getItems(),a=r.map(s=>this.typedToString(s).split(v.ArgParamsSeparator)[0])[0],o=r.map(s=>this.typedToString(s).split(v.ArgParamsSeparator)[1]);return`variadic:${a}:${o.join(",")}`}if(t.hasExactClass(te.ClassName)||e.hasClassOrSuperclass(Se.ClassName)){let r=e.getItems(),n=r.map(c=>this.typedToString(c).split(v.ArgParamsSeparator)[0]),a=r.map(c=>this.typedToString(c).split(v.ArgParamsSeparator)[1]),o=n.join(v.ArgCompositeSeparator),s=a.join(v.ArgCompositeSeparator);return`composite(${o}):${s}`}if(t.hasExactClass(_.ClassName)||e.hasClassOrSuperclass(X.ClassName)||t.getName()==="BigUint")return`biguint:${BigInt(e.valueOf().toFixed())}`;if(t.hasExactClass(ue.ClassName)||e.hasClassOrSuperclass(Le.ClassName))return`uint8:${e.valueOf().toNumber()}`;if(t.hasExactClass(ce.ClassName)||e.hasClassOrSuperclass(Me.ClassName))return`uint16:${e.valueOf().toNumber()}`;if(t.hasExactClass(pe.ClassName)||e.hasClassOrSuperclass($e.ClassName))return`uint32:${e.valueOf().toNumber()}`;if(t.hasExactClass(M.ClassName)||e.hasClassOrSuperclass(le.ClassName))return`uint64:${BigInt(e.valueOf().toFixed())}`;if(t.hasExactClass(ie.ClassName)||e.hasClassOrSuperclass(Pe.ClassName))return`string:${e.valueOf()}`;if(t.hasExactClass(Y.ClassName)||e.hasClassOrSuperclass(Ie.ClassName))return`bool:${e.valueOf()}`;if(t.hasExactClass(J.ClassName)||e.hasClassOrSuperclass(Be.ClassName))return`address:${e.valueOf().toBech32()}`;if(t.hasExactClass(O.ClassName)||e.hasClassOrSuperclass(oe.ClassName))return`token:${e.valueOf()}`;if(t.hasExactClass(Z.ClassName)||e.hasClassOrSuperclass(Ne.ClassName))return`hex:${e.valueOf().toString("hex")}`;if(t.hasExactClass(ee.ClassName)||e.hasClassOrSuperclass(Ve.ClassName))return`codemeta:${e.valueOf().toString()}`;if(t.getName()==="EsdtTokenPayment"){let r=e.getFieldValue("token_identifier").valueOf(),n=e.getFieldValue("token_nonce").valueOf(),a=e.getFieldValue("amount").valueOf();return`asset:${new Oe().computeExtendedIdentifier(new ht({identifier:r,nonce:BigInt(n)}))}|${a}`}throw new Error(`WarpArgSerializer (typedToString): Unsupported input type: ${e.getClassName()}`)}typedToNative(e){let t=this.typedToString(e);return this.coreSerializer.stringToNative(t)}nativeToTyped(e,t){let r=this.coreSerializer.nativeToString(e,t);return this.stringToTyped(r)}nativeToType(e){if(e.startsWith("composite")){let t=e.match(/\(([^)]+)\)/)?.[1];return new te(...t.split(v.ArgCompositeSeparator).map(r=>this.nativeToType(r)))}if(e==="string")return new ie;if(e==="uint8")return new ue;if(e==="uint16")return new ce;if(e==="uint32")return new pe;if(e==="uint64")return new M;if(e==="biguint")return new _;if(e==="bool")return new Y;if(e==="address")return new J;if(e==="token")return new O;if(e==="hex")return new Z;if(e==="codemeta")return new ee;if(e==="asset")return new _e("EsdtTokenPayment",[new ne("token_identifier","",new O),new ne("token_nonce","",new M),new ne("amount","",new _)]);throw new Error(`WarpArgSerializer (nativeToType): Unsupported input type: ${e}`)}stringToTyped(e){let[t,r]=e.split(/:(.*)/,2);if(t==="null"||t===null)return new T;if(t==="option"){let n=this.stringToTyped(r);return n instanceof T?se.newMissingTyped(n.getType()):se.newProvided(n)}if(t==="optional"){let n=this.stringToTyped(r);return n instanceof T?ae.newMissing():new ae(n.getType(),n)}if(t==="list"){let[n,a]=r.split(qe,2),s=a.split(",").map(c=>this.stringToTyped(`${n}:${c}`));return new ke(this.nativeToType(n),s)}if(t==="variadic"){let[n,a]=r.split(qe,2),s=a.split(",").map(c=>this.stringToTyped(`${n}:${c}`));return new De(new me(this.nativeToType(n)),s)}if(t.startsWith("composite")){let n=t.match(/\(([^)]+)\)/)?.[1],a=r.split(v.ArgCompositeSeparator),o=n.split(v.ArgCompositeSeparator),s=a.map((p,u)=>this.stringToTyped(`${o[u]}:${p}`)),c=s.map(p=>p.getType());return new Se(new te(...c),s)}if(t==="string")return r?Pe.fromUTF8(r):new T;if(t==="uint8")return r?new Le(Number(r)):new T;if(t==="uint16")return r?new Me(Number(r)):new T;if(t==="uint32")return r?new $e(Number(r)):new T;if(t==="uint64")return r?new le(BigInt(r)):new T;if(t==="biguint")return r?new X(BigInt(r)):new T;if(t==="bool")return r?new Ie(typeof r=="boolean"?r:r==="true"):new T;if(t==="address")return r?new Be(ut.newFromBech32(r)):new T;if(t==="token")return r?new oe(r):new T;if(t==="hex")return r?Ne.fromHex(r):new T;if(t==="codemeta")return new Ve(mt.newFromBytes(Uint8Array.from(Buffer.from(r,"hex"))));if(t==="asset"){let[n,a]=r.split(v.ArgCompositeSeparator),o=new Oe,s=V(n)?P(n):o.extractIdentifierFromExtendedIdentifier(n),c=V(n)?0n:o.extractNonceFromExtendedIdentifier(n);return new dt(this.nativeToType("asset"),[new re(new oe(s),"token_identifier"),new re(new le(BigInt(c)),"token_nonce"),new re(new X(BigInt(a)),"amount")])}throw new Error(`WarpArgSerializer (stringToTyped): Unsupported input type: ${t}`)}typeToString(e){if(e.hasExactClass(Ue.ClassName))return"option:"+this.typeToString(e.getFirstTypeParameter());if(e.hasExactClass(Re.ClassName))return"optional:"+this.typeToString(e.getFirstTypeParameter());if(e.hasExactClass(Fe.ClassName))return"list:"+this.typeToString(e.getFirstTypeParameter());if(e.hasExactClass(me.ClassName))return"variadic:"+this.typeToString(e.getFirstTypeParameter());if(e.hasExactClass(ie.ClassName))return"string";if(e.hasExactClass(ue.ClassName))return"uint8";if(e.hasExactClass(ce.ClassName))return"uint16";if(e.hasExactClass(pe.ClassName))return"uint32";if(e.hasExactClass(M.ClassName))return"uint64";if(e.hasExactClass(_.ClassName))return"biguint";if(e.hasExactClass(Y.ClassName))return"bool";if(e.hasExactClass(J.ClassName))return"address";if(e.hasExactClass(O.ClassName))return"token";if(e.hasExactClass(Z.ClassName))return"hex";if(e.hasExactClass(ee.ClassName))return"codemeta";if(e.hasExactClass(_e.ClassName)&&e.getClassName()==="EsdtTokenPayment")return"asset";throw new Error(`WarpArgSerializer (typeToString): Unsupported input type: ${e.getClassName()}`)}};var S=class{constructor(e,t){this.config=e;this.chain=t;this.abi=new I(e,t),this.serializer=new B,this.cache=new Wt(e.cache?.type)}async getTransactionExecutionResults(e,t){let{actionIndex:r}=ze(e),n=this.cache.get(Tt.WarpExecutable(this.config.env,e.meta?.hash||"",r))??[],a=await this.extractContractResults(e,t,n),o=xt(this.config,[],e,r,a),s=Ct(e,a.results);return{success:t.status.isSuccessful(),warp:e,action:r,user:this.config.user?.wallets?.[this.chain.name]||null,txHash:t.hash,tx:t,next:o,values:a.values,valuesRaw:[],results:a.results,messages:s}}async extractContractResults(e,t,r){let{action:n,actionIndex:a}=ze(e),o=[],s={};if(!e.results||n.type!=="contract")return{values:o,results:s};if(!Object.values(e.results).some(C=>C.includes("out")||C.includes("event"))){for(let[C,m]of Object.entries(e.results))s[C]=m;return{values:o,results:await $(e,s,a,r,this.config.transform?.runner)}}let p=await this.abi.getAbiForAction(n),u=new wt({abi:p}),y=new yt({abi:p}).parseExecute({transactionOnNetwork:t,function:n.func||void 0});for(let[C,m]of Object.entries(e.results)){if(m.startsWith(Ge.Transform.Prefix))continue;if(m.startsWith("input.")){s[C]=m;continue}let b=He(m);if(b!==null&&b!==a){s[C]=null;continue}let[x,W,A]=m.split(".");if(x==="event"){if(!W||isNaN(Number(A)))continue;let E=Number(A),g=gt(t,W),k=u.parseEvents({events:g})[0],U=Object.values(k)[E]||null;o.push(U),s[C]=U&&U.valueOf()}else if(x==="out"||x.startsWith("out[")){if(!W)continue;let E=Number(W),g=y.values[E-1]||null;A&&(g=g[A]||null),g&&typeof g=="object"&&(g="toFixed"in g?g.toFixed():g.valueOf()),o.push(g),s[C]=g&&g.valueOf()}else s[C]=m}return{values:o,results:await $(e,s,a,r)}}async extractQueryResults(e,t,r,n){let a=t.map(p=>this.serializer.typedToString(p)),o=t.map(p=>this.serializer.typedToNative(p)[1]),s={};if(!e.results)return{values:a,valuesRaw:o,results:s};let c=p=>{let u=p.split(".").slice(1).map(y=>parseInt(y)-1);if(u.length===0)return;let l=o[u[0]];for(let y=1;y<u.length;y++){if(l==null)return;l=l[u[y]]}return l};for(let[p,u]of Object.entries(e.results)){if(u.startsWith(Ge.Transform.Prefix))continue;let l=He(u);if(l!==null&&l!==r){s[p]=null;continue}u.startsWith("out.")||u==="out"||u.startsWith("out[")?s[p]=c(u)||null:s[p]=u}return{values:a,valuesRaw:o,results:await $(e,s,r,n)}}async resolveWarpResultsRecursively(e){let t=e.warp,r=e.entryActionIndex,n=e.executor,a=e.inputs,o=e.meta,s=new Map,c=new Set,p=this;async function u(m,b=[]){if(s.has(m))return s.get(m);if(c.has(m))throw new Error(`Circular dependency detected at action ${m}`);c.add(m);let x=t.actions[m-1];if(!x)throw new Error(`Action ${m} not found`);let W;if(x.type==="query")W=await n.executeQuery(t,m,b);else if(x.type==="collect")W=await n.executeCollect(t,m,b,o);else throw new Error(`Unsupported or interactive action type: ${x.type}`);if(s.set(m,W),t.results)for(let A of Object.values(t.results)){let g=String(A).match(/^out\[(\d+)\]/);if(g){let k=parseInt(g[1],10);k!==m&&!s.has(k)&&await u(k)}}return c.delete(m),W}await u(r,a);let l={};for(let m of s.values())for(let[b,x]of Object.entries(m.results))x!==null?l[b]=x:b in l||(l[b]=null);let y=await $(t,l,r,a,this.config.transform?.runner);return{...s.get(r),action:r,results:y}}};var _t="EGLD-000000",h=class i{constructor(e,t){this.config=e;this.chain=t;this.serializer=new B,this.abi=new I(this.config,this.chain),this.results=new S(this.config,this.chain)}async createTransaction(e){let t=de(e.warp,e.action),r=null;if(t.type==="transfer")r=await this.createTransferTransaction(e);else if(t.type==="contract")r=await this.createContractCallTransaction(e);else{if(t.type==="query")throw new Error("WarpMultiversxExecutor: Invalid action type for createTransactionForExecute; Use executeQuery instead");if(t.type==="collect")throw new Error("WarpMultiversxExecutor: Invalid action type for createTransactionForExecute; Use executeCollect instead")}if(!r)throw new Error(`WarpMultiversxExecutor: Invalid action type (${t.type})`);return r}async createTransferTransaction(e){let t=this.config.user?.wallets?.[e.chain.name];if(!t)throw new Error("WarpMultiversxExecutor: createTransfer - user address not set");let r=F.newFromBech32(t),n=new Qe({chainID:e.chain.chainId}),a=e.data?Buffer.from(this.serializer.stringToTyped(e.data).valueOf()):null;return new St({config:n}).createTransactionForTransfer(r,{receiver:F.newFromBech32(e.destination),nativeAmount:e.value,tokenTransfers:this.toTokenTransfers(e.transfers),data:a?new Uint8Array(a):void 0})}async createContractCallTransaction(e){let t=this.config.user?.wallets?.[e.chain.name];if(!t)throw new Error("WarpMultiversxExecutor: createContractCall - user address not set");let r=de(e.warp,e.action),n=F.newFromBech32(t),a=e.args.map(s=>this.serializer.stringToTyped(s)),o=new Qe({chainID:e.chain.chainId});return new At({config:o}).createTransactionForExecute(n,{contract:F.newFromBech32(e.destination),function:"func"in r&&r.func||"",gasLimit:"gasLimit"in r?BigInt(r.gasLimit||0):0n,arguments:a,tokenTransfers:this.toTokenTransfers(e.transfers),nativeTransferAmount:e.value})}async executeQuery(e){let t=de(e.warp,e.action);if(t.type!=="query")throw new Error(`WarpMultiversxExecutor: Invalid action type for executeQuery: ${t.type}`);let r=await this.abi.getAbiForAction(t),n=e.args.map(E=>this.serializer.stringToTyped(E)),a=i.getChainEntrypoint(e.chain,this.config.env,this.config),o=F.newFromBech32(e.destination),s=a.createSmartContractController(r),c=s.createQuery({contract:o,function:t.func||"",arguments:n}),p=await s.runQuery(c),u=p.returnCode==="ok",l=new vt,y=r.getEndpoint(p.function||t.func||""),C=(p.returnDataParts||[]).map(E=>Buffer.from(E)),m=l.buffersToValues(C,y.output),{values:b,valuesRaw:x,results:W}=await this.results.extractQueryResults(e.warp,m,e.action,e.resolvedInputs),A=Ut(this.config,[],e.warp,e.action,W);return{success:u,warp:e.warp,action:e.action,user:this.config.user?.wallets?.[e.chain.name]||null,txHash:null,tx:null,next:A,values:b,valuesRaw:x,results:W,messages:Rt(e.warp,W)}}static getChainEntrypoint(e,t,r){let n="warp-sdk",o=r?Pt(r,e.name,t,e.defaultApiUrl):e.defaultApiUrl;return t==="devnet"?new bt({url:o,kind:"api",clientName:n}):t==="testnet"?new Bt({url:o,kind:"api",clientName:n}):new Et({url:o,kind:"api",clientName:n})}async signMessage(e,t){let r=kt.fromString(t);return(await new Ft(r).sign(new Uint8Array(Buffer.from(e,"utf-8")))).toString()}toTokenTransfers(e){return e.map(t=>t.identifier===this.chain.nativeToken.identifier?{...t,identifier:_t}:t).map(t=>{let n=new Nt().extractNonceFromExtendedIdentifier(t.identifier);return new Vt({token:new It({identifier:t.identifier,nonce:BigInt(n||0)}),amount:t.amount})})}};var L=class{constructor(e){this.config=e}async getContract(e,t){try{let a=await h.getChainEntrypoint(t,this.config.env).createNetworkProvider().doGetGeneric(`accounts/${e}`);return{address:e,owner:a.ownerAddress,verified:a.isVerified||!1}}catch(r){return je.error("WarpContractLoader: getContract error",r),null}}async getVerificationInfo(e,t){try{let a=await h.getChainEntrypoint(t,this.config.env).createNetworkProvider().doGetGeneric(`accounts/${e}/verification`);return{codeHash:a.codeHash,abi:a.source.abi}}catch(r){return je.error("WarpContractLoader: getVerificationInfo error",r),null}}};var I=class{constructor(e,t){this.config=e;this.chain=t;this.contractLoader=new L(this.config),this.cache=new Dt(this.config.cache?.type)}async createInscriptionTransaction(e){let t=this.config.user?.wallets?.[this.chain.name];if(!t)throw new Error("WarpBuilder: user address not set");let r=new Mt({chainID:this.chain.chainId}),n=new $t({config:r}),a=Ot.newFromBech32(t),o={protocol:Lt("abi"),content:e},s=JSON.stringify(o),c=await n.createTransactionForTransfer(a,{receiver:a,nativeAmount:BigInt(0),data:Uint8Array.from(Buffer.from(s))});return c.gasLimit=c.gasLimit+BigInt(2e6),c}async createFromRaw(e){return JSON.parse(e)}async createFromTransaction(e){let t=await this.createFromRaw(e.data.toString());return t.meta={chain:this.chain.name,hash:e.hash,creator:e.sender.toBech32(),createdAt:new Date(e.timestamp*1e3).toISOString()},t}async createFromTransactionHash(e,t){let r=qt.WarpAbi(this.config.env,e);if(t){let o=this.cache.get(r);if(o)return Je.info(`WarpAbiBuilder (createFromTransactionHash): Warp abi found in cache: ${e}`),o}let a=h.getChainEntrypoint(this.chain,this.config.env).createNetworkProvider();try{let o=await a.getTransaction(e),s=await this.createFromTransaction(o);return t&&t.ttl&&s&&this.cache.set(r,s,t.ttl),s}catch(o){return Je.error("WarpAbiBuilder: Error creating from transaction hash",o),null}}async getAbiForAction(e){if(e.abi)return await this.fetchAbi(e);if(!e.address)throw new Error("WarpActionExecutor: Address not found");let t=await this.contractLoader.getVerificationInfo(e.address,this.chain);if(!t)throw new Error("WarpActionExecutor: Verification info not found");return he.create(t.abi)}async fetchAbi(e){if(!e.abi)throw new Error("WarpActionExecutor: ABI not found");if(e.abi.startsWith(Ke.IdentifierType.Hash)){let t=e.abi.split(Ke.ArgParamsSeparator)[1],r=await this.createFromTransactionHash(t);if(!r)throw new Error(`WarpActionExecutor: ABI not found for hash: ${e.abi}`);return he.create(r.content)}else{let r=await(await fetch(e.abi)).json();return he.create(r)}}};import{Address as Xe,TransactionsFactoryConfig as zt,TransferTransactionsFactory as Ht}from"@multiversx/sdk-core";import{WarpBrandBuilder as Gt,WarpLogger as Qt}from"@vleap/warps";import{Buffer as jt}from"buffer";var D=class{constructor(e,t){this.config=e;this.chain=t;this.core=new Gt(e)}async createInscriptionTransaction(e){let t=this.config.user?.wallets?.[this.chain.name];if(!t)throw new Error("BrandBuilder: user address not set");let r=new zt({chainID:this.chain.chainId}),n=new Ht({config:r}),a=Xe.newFromBech32(t),o=JSON.stringify(e);return await n.createTransactionForNativeTokenTransfer(a,{receiver:Xe.newFromBech32(t),nativeAmount:BigInt(0),data:Uint8Array.from(jt.from(o))})}async createFromTransaction(e,t=!1){return await this.core.createFromRaw(e.data.toString(),t)}async createFromTransactionHash(e){let r=h.getChainEntrypoint(this.chain,this.config.env).createNetworkProvider();try{let n=await r.getTransaction(e);return this.createFromTransaction(n)}catch(n){return Qt.error("BrandBuilder: Error creating from transaction hash",n),null}}};import{Address as Ye,TransactionsFactoryConfig as Kt,TransferTransactionsFactory as Jt}from"@multiversx/sdk-core";import{WarpBuilder as Ze,WarpCache as Xt,WarpCacheKey as Yt,WarpLogger as et}from"@vleap/warps";var q=class extends Ze{constructor(t,r){super(t);this.config=t;this.chain=r;this.cache=new Xt(t.cache?.type),this.core=new Ze(t)}async createInscriptionTransaction(t){let r=this.config.user?.wallets?.[this.chain.name];if(!r)throw new Error("WarpBuilder: user address not set");let n=new Kt({chainID:this.chain.chainId}),a=new Jt({config:n}),o=Ye.newFromBech32(r),s=JSON.stringify(t),c=await a.createTransactionForTransfer(o,{receiver:Ye.newFromBech32(r),nativeAmount:BigInt(0),data:Uint8Array.from(Buffer.from(s))});return c.gasLimit=c.gasLimit+BigInt(2e6),c}async createFromTransaction(t,r=!1){let n=await this.core.createFromRaw(t.data.toString(),r);return n.meta={chain:this.chain.name,hash:t.hash,creator:t.sender.toBech32(),createdAt:new Date(t.timestamp*1e3).toISOString()},n}async createFromTransactionHash(t,r){let n=Yt.Warp(this.config.env,t);if(r){let s=this.cache.get(n);if(s)return et.info(`WarpBuilder (createFromTransactionHash): Warp found in cache: ${t}`),s}let o=h.getChainEntrypoint(this.chain,this.config.env).createNetworkProvider();try{let s=await o.getTransaction(t),c=await this.createFromTransaction(s);return r&&r.ttl&&c&&this.cache.set(n,c,r.ttl),c}catch(s){return et.error("WarpBuilder: Error creating from transaction hash",s),null}}};import{Address as fe,Token as tr,TokenComputer as rr}from"@multiversx/sdk-core";import{CacheTtl as nr,WarpCache as ar,WarpCacheKey as sr}from"@vleap/warps";import{WarpChainName as Zt}from"@vleap/warps";var z=Zt.Multiversx,er=[{chain:z,identifier:"EGLD",name:"eGold",symbol:"EGLD",decimals:18,logoUrl:"https://tools.multiversx.com/assets-cdn/tokens/EGLD-000000/icon.pngsvg"},{chain:z,identifier:"EGLD-000000",name:"eGold",symbol:"EGLD",decimals:18,logoUrl:"https://tools.multiversx.com/assets-cdn/tokens/EGLD-000000/icon.png"},{chain:z,identifier:"VIBE",name:"VIBE",symbol:"VIBE",decimals:18,logoUrl:"https://vleap.ai/images/tokens/vibe.svg"},{chain:z,identifier:"VIBE-000000",name:"VIBE",symbol:"VIBE",decimals:18,logoUrl:"https://vleap.ai/images/tokens/vibe.svg"}],tt=i=>er.find(e=>e.identifier===i)||null;var H=class{constructor(e,t){this.config=e;this.chain=t;this.cache=new ar(e.cache?.type)}async getAccount(e){let r=await h.getChainEntrypoint(this.chain,this.config.env,this.config).createNetworkProvider().getAccount(fe.newFromBech32(e));return{chain:this.chain.name,address:r.address.toBech32(),balance:r.balance}}async getAccountAssets(e){let t=h.getChainEntrypoint(this.chain,this.config.env,this.config).createNetworkProvider(),r=t.getAccount(fe.newFromBech32(e)),n=t.getFungibleTokensOfAccount(fe.newFromBech32(e)),[a,o]=await Promise.all([r,n]),s=a.balance>0?[{...this.chain.nativeToken,amount:a.balance}]:[];return s.push(...o.map(c=>({chain:this.chain.name,identifier:c.token.identifier,name:c.raw.name,symbol:c.raw.ticker,amount:c.amount,decimals:c.raw.decimals,logoUrl:c.raw.assets?.pngUrl||""}))),s}async getAsset(e){let t=sr.Asset(this.config.env,this.chain.name,e),r=this.cache.get(t);if(r)return r;let n=tt(e);if(n)return{chain:this.chain.name,identifier:e,name:n.name,symbol:n.symbol,amount:0n,decimals:n.decimals,logoUrl:n.logoUrl};let a=new rr,o=V(e)?0n:a.extractNonceFromExtendedIdentifier(e),s=new tr({identifier:e,nonce:BigInt(o||0)}),c=a.isFungible(s),p=h.getChainEntrypoint(this.chain,this.config.env,this.config).createNetworkProvider(),u=P(e),l=await p.doGetGeneric(`tokens/${u}`),y={chain:this.chain.name,identifier:s.identifier,name:l.name,symbol:l.ticker,amount:0n,decimals:l.decimals,logoUrl:l.assets?.pngUrl||"#"};return this.cache.set(t,y,nr.OneHour),y}async getAction(e,t=!1){let r=h.getChainEntrypoint(this.chain,this.config.env,this.config),n=t?await r.awaitCompletedTransaction(e):await r.getTransaction(e);return{chain:this.chain.name,id:n.hash,receiver:n.receiver.toBech32(),sender:n.sender.toBech32(),value:n.value,function:n.function,status:this.toActionStatus(n),createdAt:this.toActionCreatedAt(n),error:n?.smartContractResults.map(a=>a.raw.returnMessage)[0]||null,tx:n}}async getAccountActions(e,t){let r=h.getChainEntrypoint(this.chain,this.config.env,this.config).createNetworkProvider(),n=`accounts/${e}/transactions`,a=new URLSearchParams,o=t?.size||25,s=t?.page||0;if(s>0){let p=s*o;a.append("from",p.toString())}return o!==25&&a.append("size",o.toString()),a.toString()&&(n+=`?${a.toString()}`),(await r.doGetGeneric(n)).map(p=>({chain:this.chain.name,id:p.txHash,receiver:p.receiver,sender:p.sender,value:p.value,function:p.function,status:this.toActionStatus(p),createdAt:this.toActionCreatedAt(p)}))}toActionStatus(e){return e.status.isSuccessful()?"success":e.status.isFailed()?"failed":"pending"}toActionCreatedAt(e){return new Date(e.timestamp||e.timestamp*1e3).toISOString()}};var Sa={Egld:{Identifier:"EGLD",EsdtIdentifier:"EGLD-000000",DisplayName:"eGold",Decimals:18}},ir=(r=>(r.MultiversxExplorer="multiversx_explorer",r.MultiversxExplorerDevnet="multiversx_explorer_devnet",r.MultiversxExplorerTestnet="multiversx_explorer_testnet",r))(ir||{}),or=(r=>(r.VibechainExplorer="vibechain_explorer",r.VibechainExplorerDevnet="vibechain_explorer_devnet",r.VibechainExplorerTestnet="vibechain_explorer_testnet",r))(or||{}),rt={multiversx:{mainnet:["multiversx_explorer"],testnet:["multiversx_explorer_testnet"],devnet:["multiversx_explorer_devnet"]},vibechain:{mainnet:["vibechain_explorer"],testnet:["vibechain_explorer_testnet"],devnet:["vibechain_explorer_devnet"]}},N={multiversx_explorer:"https://explorer.multiversx.com",multiversx_explorer_devnet:"https://devnet-explorer.multiversx.com",multiversx_explorer_testnet:"https://testnet-explorer.multiversx.com",vibechain_explorer:"https://vibeox-explorer.multiversx.com",vibechain_explorer_devnet:"https://vibeox-explorer.multiversx.com",vibechain_explorer_testnet:"https://vibeox-explorer.multiversx.com"};var G=class{constructor(e,t){this.chain=e;this.config=t}getExplorers(){let e=rt[this.chain];if(!e)return["multiversx_explorer"];let t=e[this.config.env];return t||["multiversx_explorer"]}getPrimaryExplorer(){return this.getExplorers()[0]}getExplorerUrlByName(e){let t=this.config.preferences?.explorers?.[this.chain];if(t&&!e){let a=N[t];if(a)return a}if(e){let a=N[e];if(a)return a}let r=this.getPrimaryExplorer();return N[r]||N[r]}getAccountUrl(e,t){return`${this.getExplorerUrlByName(t)}/accounts/${e}`}getTransactionUrl(e,t){return`${this.getExplorerUrlByName(t)}/transactions/${e}`}getBlockUrl(e,t){return`${this.getExplorerUrlByName(t)}/blocks/${e}`}getAssetUrl(e,t){return`${this.getExplorerUrlByName(t)}/tokens/${e}`}getContractUrl(e,t){return`${this.getExplorerUrlByName(t)}/accounts/${e}`}getAllExplorers(){return this.getExplorers()}getExplorerByName(e){return this.getExplorers().find(r=>r.toLowerCase()===e.toLowerCase())}getAccountUrls(e){let t=this.getAllExplorers(),r={};return t.forEach(n=>{let a=N[n];a&&(r[n]=`${a}/accounts/${e}`)}),r}getTransactionUrls(e){let t=this.getAllExplorers(),r={};return t.forEach(n=>{let a=N[n];a&&(r[n]=`${a}/transactions/${e}`)}),r}};import{AbiRegistry as at,Address as d,AddressValue as ye,BytesValue as f,SmartContractTransactionsFactory as pr,TransactionsFactoryConfig as lr}from"@multiversx/sdk-core";import{WarpCache as ur,WarpCacheKey as we,WarpLogger as Ce}from"@vleap/warps";var ge={buildInfo:{rustc:{version:"1.86.0",commitHash:"05f9846f893b09a1be1fc8560e33fc3c815cfecb",commitDate:"2025-03-31",channel:"Stable",short:"rustc 1.86.0 (05f9846f8 2025-03-31)"},contractCrate:{name:"registry",version:"0.0.1"},framework:{name:"multiversx-sc",version:"0.51.1"}},name:"RegistryContract",constructor:{inputs:[{name:"unit_price",type:"BigUint"},{name:"vault",type:"Address"}],outputs:[]},upgradeConstructor:{inputs:[],outputs:[]},endpoints:[{name:"registerWarp",mutability:"mutable",payableInTokens:["EGLD"],inputs:[{name:"hash",type:"bytes"},{name:"alias_opt",type:"optional<bytes>",multi_arg:!0},{name:"brand_opt",type:"optional<bytes>",multi_arg:!0}],outputs:[],allow_multiple_var_args:!0},{name:"unregisterWarp",mutability:"mutable",inputs:[{name:"warp",type:"bytes"}],outputs:[]},{name:"upgradeWarp",mutability:"mutable",payableInTokens:["EGLD"],inputs:[{name:"alias",type:"bytes"},{name:"new_warp",type:"bytes"}],outputs:[]},{name:"setWarpAlias",mutability:"mutable",payableInTokens:["EGLD"],inputs:[{name:"hash",type:"bytes"},{name:"alias",type:"bytes"}],outputs:[]},{name:"forceRemoveAlias",mutability:"mutable",inputs:[{name:"hash",type:"bytes"}],outputs:[]},{name:"verifyWarp",mutability:"mutable",inputs:[{name:"warp",type:"bytes"}],outputs:[]},{name:"transferOwnership",mutability:"mutable",inputs:[{name:"warp",type:"bytes"},{name:"new_owner",type:"Address"}],outputs:[]},{name:"getUserWarps",mutability:"readonly",inputs:[{name:"address",type:"Address"}],outputs:[{type:"variadic<InfoView>",multi_result:!0}]},{name:"getInfoByAlias",mutability:"readonly",inputs:[{name:"alias",type:"bytes"}],outputs:[{type:"InfoView"}]},{name:"getInfoByHash",mutability:"readonly",inputs:[{name:"hash",type:"bytes"}],outputs:[{type:"InfoView"}]},{name:"setVault",onlyOwner:!0,mutability:"mutable",inputs:[{name:"vault",type:"Address"}],outputs:[]},{name:"setUnitPrice",onlyOwner:!0,mutability:"mutable",inputs:[{name:"amount",type:"BigUint"}],outputs:[]},{name:"addAdmin",onlyOwner:!0,mutability:"mutable",inputs:[{name:"address",type:"Address"}],outputs:[]},{name:"removeAdmin",onlyOwner:!0,mutability:"mutable",inputs:[{name:"address",type:"Address"}],outputs:[]},{name:"getConfig",mutability:"readonly",inputs:[],outputs:[{type:"ConfigView"}]},{name:"registerBrand",mutability:"mutable",payableInTokens:["EGLD"],inputs:[{name:"hash",type:"bytes"}],outputs:[]},{name:"brandWarp",mutability:"mutable",payableInTokens:["EGLD"],inputs:[{name:"warp",type:"bytes"},{name:"brand",type:"bytes"}],outputs:[]},{name:"getUserBrands",mutability:"readonly",inputs:[{name:"user",type:"Address"}],outputs:[{type:"variadic<bytes>",multi_result:!0}]},{name:"setChain",onlyOwner:!0,mutability:"mutable",inputs:[{name:"name",type:"bytes"},{name:"display_name",type:"bytes"},{name:"chain_id",type:"bytes"},{name:"block_time",type:"u32"},{name:"address_hrp",type:"bytes"},{name:"api_url",type:"bytes"},{name:"explorer_url",type:"bytes"},{name:"native_token",type:"bytes"}],outputs:[]},{name:"removeChain",onlyOwner:!0,mutability:"mutable",inputs:[{name:"name",type:"bytes"}],outputs:[]},{name:"getChain",mutability:"readonly",inputs:[{name:"name",type:"bytes"}],outputs:[{type:"ChainView"}]},{name:"getChains",mutability:"readonly",inputs:[],outputs:[{type:"variadic<ChainView>",multi_result:!0}]}],events:[{identifier:"warpRegistered",inputs:[{name:"hash",type:"bytes",indexed:!0},{name:"alias",type:"bytes",indexed:!0},{name:"trust",type:"bytes",indexed:!0}]},{identifier:"warpUnregistered",inputs:[{name:"hash",type:"bytes",indexed:!0}]},{identifier:"warpUpgraded",inputs:[{name:"alias",type:"bytes",indexed:!0},{name:"new_warp",type:"bytes",indexed:!0},{name:"trust",type:"bytes",indexed:!0}]},{identifier:"warpVerified",inputs:[{name:"hash",type:"bytes",indexed:!0}]},{identifier:"aliasUpdated",inputs:[{name:"hash",type:"bytes",indexed:!0},{name:"alias",type:"bytes",indexed:!0}]},{identifier:"ownershipTransferred",inputs:[{name:"warp",type:"bytes",indexed:!0},{name:"old_owner",type:"Address",indexed:!0},{name:"new_owner",type:"Address",indexed:!0}]}],esdtAttributes:[],hasCallback:!1,types:{ChainView:{type:"struct",fields:[{name:"name",type:"bytes"},{name:"display_name",type:"bytes"},{name:"chain_id",type:"bytes"},{name:"block_time",type:"u32"},{name:"address_hrp",type:"bytes"},{name:"api_url",type:"bytes"},{name:"explorer_url",type:"bytes"},{name:"native_token",type:"bytes"}]},ConfigView:{type:"struct",fields:[{name:"unit_price",type:"BigUint"},{name:"admins",type:"List<Address>"}]},InfoView:{type:"struct",fields:[{name:"hash",type:"bytes"},{name:"alias",type:"Option<bytes>"},{name:"trust",type:"bytes"},{name:"owner",type:"Address"},{name:"created_at",type:"u64"},{name:"upgraded_at",type:"u64"},{name:"brand",type:"Option<bytes>"},{name:"upgrade",type:"Option<bytes>"}]}}};var w=i=>{if(i==="devnet")return"erd1qqqqqqqqqqqqqpgqje2f99vr6r7sk54thg03c9suzcvwr4nfl3tsfkdl36";if(i==="testnet")throw new Error("Multiversx testnet is not supported");return"erd1qqqqqqqqqqqqqpgq3mrpj3u6q7tejv6d7eqhnyd27n9v5c5tl3ts08mffe"};var Q=i=>({hash:i.hash.toString("hex"),alias:i.alias?.toString()||null,trust:i.trust.toString(),owner:i.owner.toString(),createdAt:i.created_at.toNumber(),upgradedAt:i.upgraded_at?.toNumber(),brand:i.brand?.toString("hex")||null,upgrade:i.upgrade?.toString("hex")||null}),nt=i=>({unitPrice:BigInt(i.unit_price.toString()),admins:i.admins.map(e=>e.toBech32())});var j=class{constructor(e,t){this.config=e;this.chain=t;this.cache=new ur(e.cache?.type),this.registryConfig={unitPrice:BigInt(0),admins:[]},this.userWallet=this.config.user?.wallets?.[this.chain.name]||null}async init(){await this.loadRegistryConfigs()}getRegistryConfig(){return this.registryConfig}async createWarpRegisterTransaction(e,t,r){if(this.registryConfig.unitPrice===BigInt(0))throw new Error("WarpRegistry: config not loaded. forgot to call init()?");if(!this.userWallet)throw new Error("WarpRegistry: user address not set");let n=d.newFromBech32(this.userWallet),a=()=>this.isCurrentUserAdmin()?BigInt(0):t&&r?this.registryConfig.unitPrice*BigInt(3):t?this.registryConfig.unitPrice*BigInt(2):this.registryConfig.unitPrice,o=()=>t&&r?[f.fromHex(e),f.fromUTF8(t),f.fromHex(r)]:t?[f.fromHex(e),f.fromUTF8(t)]:[f.fromHex(e)];return await this.getFactory().createTransactionForExecute(n,{contract:d.newFromBech32(w(this.config.env)),function:"registerWarp",gasLimit:BigInt(1e7),nativeTransferAmount:a(),arguments:o()})}async createWarpUnregisterTransaction(e){if(!this.userWallet)throw new Error("WarpRegistry: user address not set");let t=d.newFromBech32(this.userWallet);return await this.getFactory().createTransactionForExecute(t,{contract:d.newFromBech32(w(this.config.env)),function:"unregisterWarp",gasLimit:BigInt(1e7),arguments:[f.fromHex(e)]})}async createWarpUpgradeTransaction(e,t){if(this.registryConfig.unitPrice===BigInt(0))throw new Error("WarpRegistry: config not loaded. forgot to call init()?");if(!this.userWallet)throw new Error("WarpRegistry: user address not set");let r=d.newFromBech32(this.userWallet);return await this.getFactory().createTransactionForExecute(r,{contract:d.newFromBech32(w(this.config.env)),function:"upgradeWarp",gasLimit:BigInt(1e7),nativeTransferAmount:this.isCurrentUserAdmin()?void 0:this.registryConfig.unitPrice,arguments:[f.fromUTF8(e),f.fromHex(t)]})}async createWarpAliasSetTransaction(e,t){if(!this.userWallet)throw new Error("WarpRegistry: user address not set");let r=d.newFromBech32(this.userWallet);return await this.getFactory().createTransactionForExecute(r,{contract:d.newFromBech32(w(this.config.env)),function:"setWarpAlias",gasLimit:BigInt(1e7),nativeTransferAmount:this.isCurrentUserAdmin()?void 0:this.registryConfig.unitPrice,arguments:[f.fromHex(e),f.fromUTF8(t)]})}async createWarpVerifyTransaction(e){if(!this.userWallet)throw new Error("WarpRegistry: user address not set");let t=d.newFromBech32(this.userWallet);return await this.getFactory().createTransactionForExecute(t,{contract:d.newFromBech32(w(this.config.env)),function:"verifyWarp",gasLimit:BigInt(1e7),arguments:[f.fromHex(e)]})}async createWarpTransferOwnershipTransaction(e,t){if(!this.userWallet)throw new Error("WarpRegistry: user address not set");let r=d.newFromBech32(this.userWallet);return await this.getFactory().createTransactionForExecute(r,{contract:d.newFromBech32(w(this.config.env)),function:"transferOwnership",gasLimit:BigInt(1e7),arguments:[f.fromHex(e),new ye(new d(t))]})}async createBrandRegisterTransaction(e){if(this.registryConfig.unitPrice===BigInt(0))throw new Error("WarpRegistry: config not loaded. forgot to call init()?");if(!this.userWallet)throw new Error("WarpRegistry: user address not set");let t=d.newFromBech32(this.userWallet);return await this.getFactory().createTransactionForExecute(t,{contract:d.newFromBech32(w(this.config.env)),function:"registerBrand",gasLimit:BigInt(1e7),nativeTransferAmount:this.isCurrentUserAdmin()?void 0:this.registryConfig.unitPrice,arguments:[f.fromHex(e)]})}async createWarpBrandingTransaction(e,t){if(!this.userWallet)throw new Error("WarpRegistry: user address not set");let r=d.newFromBech32(this.userWallet);return await this.getFactory().createTransactionForExecute(r,{contract:d.newFromBech32(w(this.config.env)),function:"brandWarp",gasLimit:BigInt(1e7),nativeTransferAmount:this.isCurrentUserAdmin()?void 0:this.registryConfig.unitPrice,arguments:[f.fromHex(e),f.fromHex(t)]})}async getInfoByAlias(e,t){try{let r=we.RegistryInfo(this.config.env,e),n=t?this.cache.get(r):null;if(n)return Ce.info(`WarpRegistry (getInfoByAlias): RegistryInfo found in cache: ${e}`),n;let a=d.newFromBech32(w(this.config.env)),o=this.getController(),s=o.createQuery({contract:a,function:"getInfoByAlias",arguments:[f.fromUTF8(e)]}),c=await o.runQuery(s),[p]=o.parseQueryResponse(c),u=p?Q(p):null,l=u?.brand?await this.fetchBrand(u.brand):null;return t&&t.ttl&&this.cache.set(r,{registryInfo:u,brand:l},t.ttl),{registryInfo:u,brand:l}}catch{return{registryInfo:null,brand:null}}}async getInfoByHash(e,t){try{let r=we.RegistryInfo(this.config.env,e);if(t){let l=this.cache.get(r);if(l)return Ce.info(`WarpRegistry (getInfoByHash): RegistryInfo found in cache: ${e}`),l}let n=d.newFromBech32(w(this.config.env)),a=this.getController(),o=a.createQuery({contract:n,function:"getInfoByHash",arguments:[f.fromHex(e)]}),s=await a.runQuery(o),[c]=a.parseQueryResponse(s),p=c?Q(c):null,u=p?.brand?await this.fetchBrand(p.brand):null;return t&&t.ttl&&this.cache.set(r,{registryInfo:p,brand:u},t.ttl),{registryInfo:p,brand:u}}catch{return{registryInfo:null,brand:null}}}async getUserWarpRegistryInfos(e){try{let t=e||this.userWallet;if(!t)throw new Error("WarpRegistry: user address not set");let r=d.newFromBech32(w(this.config.env)),n=this.getController(),a=n.createQuery({contract:r,function:"getUserWarps",arguments:[new ye(new d(t))]}),o=await n.runQuery(a),[s]=n.parseQueryResponse(o);return s.map(Q)}catch{return[]}}async getUserBrands(e){try{let t=e||this.userWallet;if(!t)throw new Error("WarpRegistry: user address not set");let r=d.newFromBech32(w(this.config.env)),n=this.getController(),a=n.createQuery({contract:r,function:"getUserBrands",arguments:[new ye(new d(t))]}),o=await n.runQuery(a),[s]=n.parseQueryResponse(o),c=s.map(l=>l.toString("hex")),p={ttl:365*24*60*60};return(await Promise.all(c.map(l=>this.fetchBrand(l,p)))).filter(l=>l!==null)}catch{return[]}}async fetchBrand(e,t){let r=we.Brand(this.config.env,e),n=t?this.cache.get(r):null;if(n)return Ce.info(`WarpRegistry (fetchBrand): Brand found in cache: ${e}`),n;let o=h.getChainEntrypoint(this.chain,this.config.env).createNetworkProvider();try{let s=await o.getTransaction(e),c=JSON.parse(s.data.toString());return c.meta={hash:s.hash,creator:s.sender.toBech32(),createdAt:new Date(s.timestamp*1e3).toISOString()},t&&t.ttl&&this.cache.set(r,c,t.ttl),c}catch{return null}}async loadRegistryConfigs(){let e=d.newFromBech32(w(this.config.env)),t=this.getController(),[r]=await t.query({contract:e,function:"getConfig",arguments:[]}),n=r?nt(r):null;this.registryConfig=n||{unitPrice:BigInt(0),admins:[]}}getFactory(){let e=new lr({chainID:this.chain.chainId}),t=at.create(ge);return new pr({config:e,abi:t})}getController(){let e=h.getChainEntrypoint(this.chain,this.config.env),t=at.create(ge);return e.createSmartContractController(t)}isCurrentUserAdmin(){return!!this.userWallet&&this.registryConfig.admins.includes(this.userWallet)}};var K=(i,e,t)=>(r,n)=>{let a=t[r.env];return{chain:i,chainInfo:a,prefix:e,builder:()=>new q(r,a),executor:new h(r,a),results:new S(r,a),serializer:new B,registry:new j(r,a),explorer:new G(i,r),abiBuilder:()=>new I(r,a),brandBuilder:()=>new D(r,a),dataLoader:new H(r,a),registerTypes:o=>{o.registerType("token",{stringToNative:s=>s,nativeToString:s=>`token:${s}`}),o.registerType("codemeta",{stringToNative:s=>s,nativeToString:s=>`codemeta:${s}`})}}};var xe={chain:R.Multiversx,identifier:"EGLD",name:"eGold",symbol:"EGLD",decimals:18,logoUrl:"https://vleap.ai/images/tokens/egld.svg"},st=K(R.Multiversx,"mvx",{mainnet:{name:R.Multiversx,displayName:"MultiversX",chainId:"1",blockTime:6e3,addressHrp:"erd",defaultApiUrl:"https://api.multiversx.com",nativeToken:xe},testnet:{name:R.Multiversx,displayName:"MultiversX Testnet",chainId:"T",blockTime:6e3,addressHrp:"erd",defaultApiUrl:"https://testnet-api.multiversx.com",nativeToken:xe},devnet:{name:R.Multiversx,displayName:"MultiversX Devnet",chainId:"D",blockTime:6e3,addressHrp:"erd",defaultApiUrl:"https://devnet-api.multiversx.com",nativeToken:xe}});import{WarpChainName as Te}from"@vleap/warps";var mr={chain:Te.Vibechain,identifier:"VIBE",name:"VIBE",symbol:"VIBE",decimals:18,logoUrl:"https://vleap.ai/images/tokens/vibe.svg"},We={name:Te.Vibechain,displayName:"VibeChain",chainId:"V",blockTime:600,addressHrp:"vibe",defaultApiUrl:"https://vibeox-api.multiversx.com",nativeToken:mr},it=K(Te.Vibechain,"vibe",{mainnet:We,testnet:We,devnet:We});var As=(i,e)=>[st(i,e),it(i,e)],Bs=()=>[ot.Multiversx,ot.Vibechain];import{Address as dr,AddressValue as hr,BigUIntType as fr,BigUIntValue as ct,BooleanValue as gr,BytesValue as yr,CodeMetadata as wr,CodeMetadataValue as Cr,CompositeType as xr,CompositeValue as Wr,Field as ve,FieldDefinition as be,List as Tr,NothingValue as vr,OptionalValue as Ee,OptionValue as Ae,StringValue as br,Struct as Er,StructType as Ar,TokenIdentifierType as Br,TokenIdentifierValue as pt,U16Value as Ir,U32Value as Nr,U64Type as Vr,U64Value as lt,U8Value as Sr,VariadicValue as kr}from"@multiversx/sdk-core";var Os=(i,e)=>i?Ae.newProvided(i):e?Ae.newMissingTyped(e):Ae.newMissing(),Ms=(i,e)=>i?new Ee(i.getType(),i):e?new Ee(e):Ee.newMissing(),$s=i=>{if(i.length===0)throw new Error("Cannot create a list from an empty array");let e=i[0].getType();return new Tr(e,i)},Ls=i=>kr.fromItems(...i),Ds=i=>{let e=i.map(t=>t.getType());return new Wr(new xr(...e),i)},qs=i=>br.fromUTF8(i),zs=i=>new Sr(i),Hs=i=>new Ir(i),Gs=i=>new Nr(i),Qs=i=>new lt(i),js=i=>new ct(BigInt(i)),Ks=i=>new gr(i),Js=i=>new hr(dr.newFromBech32(i)),Xs=i=>new pt(i),Ys=i=>yr.fromHex(i),Zs=i=>new Er(new Ar("EsdtTokenPayment",[new be("token_identifier","",new Br),new be("token_nonce","",new Vr),new be("amount","",new fr)]),[new ve(new pt(i.token.identifier),"token_identifier"),new ve(new lt(BigInt(i.token.nonce)),"token_nonce"),new ve(new ct(BigInt(i.amount)),"amount")]),ei=i=>new Cr(wr.newFromBytes(Uint8Array.from(Buffer.from(i,"hex")))),ti=()=>new vr;export{N as ExplorerUrls,er as KnownTokens,ir as MultiversxExplorers,rt as MultiversxExplorersConfig,xe as NativeTokenEgld,mr as NativeTokenVibe,or as VibechainExplorers,I as WarpMultiversxAbiBuilder,D as WarpMultiversxBrandBuilder,q as WarpMultiversxBuilder,Sa as WarpMultiversxConstants,L as WarpMultiversxContractLoader,H as WarpMultiversxDataLoader,h as WarpMultiversxExecutor,G as WarpMultiversxExplorer,j as WarpMultiversxRegistry,S as WarpMultiversxResults,B as WarpMultiversxSerializer,Js as address_value,Zs as asset_value,js as biguint_value,Ks as boolean_value,ei as codemeta_value,Ds as composite_value,K as createMultiversxAdapter,tt as findKnownTokenById,As as getAllMultiversxAdapters,Bs as getAllMultiversxChainNames,st as getMultiversxAdapter,w as getMultiversxRegistryAddress,it as getVibechainAdapter,Ys as hex_value,$s as list_value,ti as nothing_value,Os as option_value,Ms as optional_value,qs as string_value,Xs as token_value,Hs as u16_value,Gs as u32_value,Qs as u64_value,zs as u8_value,Ls as variadic_value};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vleap/warps-adapter-multiversx",
|
|
3
|
-
"version": "0.2.0-alpha.
|
|
3
|
+
"version": "0.2.0-alpha.48",
|
|
4
4
|
"description": "",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
],
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@types/jest": "^30.0.0",
|
|
29
|
-
"jest": "^30.
|
|
30
|
-
"jest-environment-jsdom": "^30.
|
|
29
|
+
"jest": "^30.1.3",
|
|
30
|
+
"jest-environment-jsdom": "^30.1.2",
|
|
31
31
|
"jest-fetch-mock": "^3.0.3",
|
|
32
32
|
"ts-jest": "^29.4.1",
|
|
33
33
|
"tsup": "^8.5.0",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"access": "public"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@multiversx/sdk-core": "^15.
|
|
41
|
-
"@vleap/warps": "^3.0.0-alpha.
|
|
40
|
+
"@multiversx/sdk-core": "^15.1.1",
|
|
41
|
+
"@vleap/warps": "^3.0.0-alpha.95"
|
|
42
42
|
}
|
|
43
43
|
}
|