@vleap/warps 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,69 @@
1
+ import { Transaction } from '@multiversx/sdk-core';
2
+ import { Transaction as Transaction$1 } from '@multiversx/sdk-core/out';
3
+
4
+ type ChainEnv = 'mainnet' | 'testnet' | 'devnet';
5
+ type Warp = {
6
+ version: string;
7
+ name: string;
8
+ title: string;
9
+ description: string | null;
10
+ preview: string;
11
+ actions: WarpAction[];
12
+ owner: string;
13
+ };
14
+ type WarpAction = WarpContractAction | WarpLinkAction;
15
+ type WarpActionType = 'contract' | 'link';
16
+ type WarpContractAction = {
17
+ type: WarpActionType;
18
+ label: string;
19
+ description: string | null;
20
+ address: string;
21
+ endpoint: string | null;
22
+ args: any[];
23
+ };
24
+ type WarpLinkAction = {
25
+ type: WarpActionType;
26
+ label: string;
27
+ description: string | null;
28
+ url: string;
29
+ };
30
+
31
+ declare const Config: {
32
+ LatestVersion: string;
33
+ Chain: {
34
+ ApiUrl: (env: ChainEnv) => "https://devnet-api.multiversx.com" | "https://testnet-api.multiversx.com" | "https://api.multiversx.com";
35
+ };
36
+ Registry: {
37
+ Contract: (env: ChainEnv) => string;
38
+ };
39
+ };
40
+
41
+ declare class WarpBuilder {
42
+ version: string;
43
+ private pendingWarp;
44
+ constructor(name: string);
45
+ static createInscriptionTransaction(warp: Warp, config: {
46
+ env: ChainEnv;
47
+ }): Transaction;
48
+ setTitle(title: string): WarpBuilder;
49
+ setDescription(description: string): WarpBuilder;
50
+ setPreview(preview: string): WarpBuilder;
51
+ addAction(action: WarpAction): WarpBuilder;
52
+ setOwner(owner: string): WarpBuilder;
53
+ build(): Warp;
54
+ private ensure;
55
+ }
56
+
57
+ type RegistryConfig = {
58
+ env: ChainEnv;
59
+ chainApiUrl?: string;
60
+ };
61
+ declare class WarpRegistry {
62
+ private config;
63
+ private registerCost;
64
+ constructor(config: RegistryConfig);
65
+ createRegisterTransaction(warp: Warp): Transaction$1;
66
+ private loadRegistryInfo;
67
+ }
68
+
69
+ export { type ChainEnv, Config, type Warp, type WarpAction, type WarpActionType, WarpBuilder, type WarpContractAction, type WarpLinkAction, WarpRegistry };
@@ -0,0 +1,69 @@
1
+ import { Transaction } from '@multiversx/sdk-core';
2
+ import { Transaction as Transaction$1 } from '@multiversx/sdk-core/out';
3
+
4
+ type ChainEnv = 'mainnet' | 'testnet' | 'devnet';
5
+ type Warp = {
6
+ version: string;
7
+ name: string;
8
+ title: string;
9
+ description: string | null;
10
+ preview: string;
11
+ actions: WarpAction[];
12
+ owner: string;
13
+ };
14
+ type WarpAction = WarpContractAction | WarpLinkAction;
15
+ type WarpActionType = 'contract' | 'link';
16
+ type WarpContractAction = {
17
+ type: WarpActionType;
18
+ label: string;
19
+ description: string | null;
20
+ address: string;
21
+ endpoint: string | null;
22
+ args: any[];
23
+ };
24
+ type WarpLinkAction = {
25
+ type: WarpActionType;
26
+ label: string;
27
+ description: string | null;
28
+ url: string;
29
+ };
30
+
31
+ declare const Config: {
32
+ LatestVersion: string;
33
+ Chain: {
34
+ ApiUrl: (env: ChainEnv) => "https://devnet-api.multiversx.com" | "https://testnet-api.multiversx.com" | "https://api.multiversx.com";
35
+ };
36
+ Registry: {
37
+ Contract: (env: ChainEnv) => string;
38
+ };
39
+ };
40
+
41
+ declare class WarpBuilder {
42
+ version: string;
43
+ private pendingWarp;
44
+ constructor(name: string);
45
+ static createInscriptionTransaction(warp: Warp, config: {
46
+ env: ChainEnv;
47
+ }): Transaction;
48
+ setTitle(title: string): WarpBuilder;
49
+ setDescription(description: string): WarpBuilder;
50
+ setPreview(preview: string): WarpBuilder;
51
+ addAction(action: WarpAction): WarpBuilder;
52
+ setOwner(owner: string): WarpBuilder;
53
+ build(): Warp;
54
+ private ensure;
55
+ }
56
+
57
+ type RegistryConfig = {
58
+ env: ChainEnv;
59
+ chainApiUrl?: string;
60
+ };
61
+ declare class WarpRegistry {
62
+ private config;
63
+ private registerCost;
64
+ constructor(config: RegistryConfig);
65
+ createRegisterTransaction(warp: Warp): Transaction$1;
66
+ private loadRegistryInfo;
67
+ }
68
+
69
+ export { type ChainEnv, Config, type Warp, type WarpAction, type WarpActionType, WarpBuilder, type WarpContractAction, type WarpLinkAction, WarpRegistry };
package/dist/index.js ADDED
@@ -0,0 +1 @@
1
+ "use strict";var u=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var C=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var w=(t,r)=>{for(var n in r)u(t,n,{get:r[n],enumerable:!0})},y=(t,r,n,s)=>{if(r&&typeof r=="object"||typeof r=="function")for(let i of C(r))!l.call(t,i)&&i!==n&&u(t,i,{get:()=>r[i],enumerable:!(s=v(r,i))||s.enumerable});return t};var W=t=>y(u({},"__esModule",{value:!0}),t);var T={};w(T,{Config:()=>o,WarpBuilder:()=>h,WarpRegistry:()=>d});module.exports=W(T);var o={LatestVersion:"0.1.0",Chain:{ApiUrl:t=>t==="devnet"?"https://devnet-api.multiversx.com":t==="testnet"?"https://testnet-api.multiversx.com":"https://api.multiversx.com"},Registry:{Contract:t=>""}};var a=require("@multiversx/sdk-core");var p=t=>t==="devnet"?"D":t==="testnet"?"T":"1";var h=class{version=o.LatestVersion;pendingWarp={version:o.LatestVersion,name:"",title:"",description:null,preview:"",actions:[],owner:""};constructor(r){this.pendingWarp.name=r}static createInscriptionTransaction(r,n){let s=new a.TransactionsFactoryConfig({chainID:p(n.env)}),i=new a.TransferTransactionsFactory({config:s}),c=Buffer.from(JSON.stringify(r)).toString("base64"),g=new TextEncoder().encode(c);return i.createTransactionForNativeTokenTransfer({sender:a.Address.newFromBech32(r.owner),receiver:a.Address.newFromBech32(r.owner),nativeAmount:BigInt(0),data:g})}setTitle(r){return this.pendingWarp.title=r,this}setDescription(r){return this.pendingWarp.description=r,this}setPreview(r){return this.pendingWarp.preview=r,this}addAction(r){return this.pendingWarp.actions.push(r),this}setOwner(r){return this.pendingWarp.owner=r,this}build(){return this.ensure(this.pendingWarp.version,"version is required"),this.ensure(this.pendingWarp.name,"name is required"),this.ensure(this.pendingWarp.title,"title is required"),this.ensure(this.pendingWarp.actions.length>0,"actions are required"),this.ensure(this.pendingWarp.owner,"owner is required"),this.pendingWarp}ensure(r,n){if(!r)throw new Error(`Warp: ${n}`)}};var e=require("@multiversx/sdk-core/out");var d=class{config;registerCost;constructor(r){this.config=r,this.registerCost=BigInt(0),this.loadRegistryInfo(r)}createRegisterTransaction(r){if(this.registerCost===BigInt(0))throw new Error("registry config not loaded");let n=new e.TransactionsFactoryConfig({chainID:p(this.config.env)});return new e.SmartContractTransactionsFactory({config:n}).createTransactionForExecute({sender:e.Address.newFromBech32(r.owner),contract:e.Address.newFromBech32(o.Registry.Contract(this.config.env)),function:"register",gasLimit:BigInt(1e7),nativeTransferAmount:this.registerCost})}async loadRegistryInfo(r){let n=o.Registry.Contract(r.env),s=new e.ApiNetworkProvider(r.chainApiUrl||o.Chain.ApiUrl(r.env),{timeout:3e4}),i=new e.QueryRunnerAdapter({networkProvider:s}),c=new e.SmartContractQueriesController({queryRunner:i}),g=c.createQuery({contract:n,function:"getConfig",arguments:[]}),f=await c.runQuery(g),[m]=c.parseQueryResponse(f);console.log("registerCost",m,f),this.registerCost=m}};0&&(module.exports={Config,WarpBuilder,WarpRegistry});
package/dist/index.mjs ADDED
@@ -0,0 +1 @@
1
+ var n={LatestVersion:"0.1.0",Chain:{ApiUrl:t=>t==="devnet"?"https://devnet-api.multiversx.com":t==="testnet"?"https://testnet-api.multiversx.com":"https://api.multiversx.com"},Registry:{Contract:t=>""}};import{Address as u,TransactionsFactoryConfig as m,TransferTransactionsFactory as v}from"@multiversx/sdk-core";var s=t=>t==="devnet"?"D":t==="testnet"?"T":"1";var h=class{version=n.LatestVersion;pendingWarp={version:n.LatestVersion,name:"",title:"",description:null,preview:"",actions:[],owner:""};constructor(r){this.pendingWarp.name=r}static createInscriptionTransaction(r,e){let o=new m({chainID:s(e.env)}),a=new v({config:o}),i=Buffer.from(JSON.stringify(r)).toString("base64"),c=new TextEncoder().encode(i);return a.createTransactionForNativeTokenTransfer({sender:u.newFromBech32(r.owner),receiver:u.newFromBech32(r.owner),nativeAmount:BigInt(0),data:c})}setTitle(r){return this.pendingWarp.title=r,this}setDescription(r){return this.pendingWarp.description=r,this}setPreview(r){return this.pendingWarp.preview=r,this}addAction(r){return this.pendingWarp.actions.push(r),this}setOwner(r){return this.pendingWarp.owner=r,this}build(){return this.ensure(this.pendingWarp.version,"version is required"),this.ensure(this.pendingWarp.name,"name is required"),this.ensure(this.pendingWarp.title,"title is required"),this.ensure(this.pendingWarp.actions.length>0,"actions are required"),this.ensure(this.pendingWarp.owner,"owner is required"),this.pendingWarp}ensure(r,e){if(!r)throw new Error(`Warp: ${e}`)}};import{Address as d,ApiNetworkProvider as C,QueryRunnerAdapter as l,SmartContractQueriesController as w,SmartContractTransactionsFactory as y,TransactionsFactoryConfig as W}from"@multiversx/sdk-core/out";var f=class{config;registerCost;constructor(r){this.config=r,this.registerCost=BigInt(0),this.loadRegistryInfo(r)}createRegisterTransaction(r){if(this.registerCost===BigInt(0))throw new Error("registry config not loaded");let e=new W({chainID:s(this.config.env)});return new y({config:e}).createTransactionForExecute({sender:d.newFromBech32(r.owner),contract:d.newFromBech32(n.Registry.Contract(this.config.env)),function:"register",gasLimit:BigInt(1e7),nativeTransferAmount:this.registerCost})}async loadRegistryInfo(r){let e=n.Registry.Contract(r.env),o=new C(r.chainApiUrl||n.Chain.ApiUrl(r.env),{timeout:3e4}),a=new l({networkProvider:o}),i=new w({queryRunner:a}),c=i.createQuery({contract:e,function:"getConfig",arguments:[]}),p=await i.runQuery(c),[g]=i.parseQueryResponse(p);console.log("registerCost",g,p),this.registerCost=g}};export{n as Config,h as WarpBuilder,f as WarpRegistry};
package/package.json ADDED
@@ -0,0 +1,44 @@
1
+ {
2
+ "name": "@vleap/warps",
3
+ "version": "0.0.4",
4
+ "description": "",
5
+ "main": "./dist/index.js",
6
+ "types": "./dist/index.d.ts",
7
+ "module": "./dist/index.js",
8
+ "scripts": {
9
+ "build": "tsup src/index.ts --dts --format cjs,esm --minify --clean",
10
+ "test": "jest",
11
+ "lint": "tsc --noEmit",
12
+ "preversion": "npm run lint && npm run build"
13
+ },
14
+ "author": "",
15
+ "license": "MIT",
16
+ "files": [
17
+ "dist"
18
+ ],
19
+ "peerDependencies": {
20
+ "@multiversx/sdk-core": "^13.13.1"
21
+ },
22
+ "devDependencies": {
23
+ "@types/jest": "^29.5.14",
24
+ "jest": "^29.7.0",
25
+ "jest-environment-jsdom": "^29.7.0",
26
+ "jest-fetch-mock": "^3.0.3",
27
+ "@multiversx/sdk-core": "^13.13.1",
28
+ "react": "^18.3.1",
29
+ "ts-jest": "^29.2.5",
30
+ "tsup": "^8.3.5",
31
+ "typescript": "^5.6.3"
32
+ },
33
+ "jest": {
34
+ "preset": "ts-jest",
35
+ "testEnvironment": "jsdom",
36
+ "setupFiles": [
37
+ "./jest.setup.ts"
38
+ ]
39
+ },
40
+ "publishConfig": {
41
+ "access": "public"
42
+ },
43
+ "dependencies": {}
44
+ }