@moonbeam-network/xcm-builder 1.0.0-dev.9 → 1.0.0-dev.91

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/build/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var P=Object.defineProperty;var K=Object.getOwnPropertyDescriptor;var R=Object.getOwnPropertyNames;var q=Object.prototype.hasOwnProperty;var V=(n,r)=>{for(var t in r)P(n,t,{get:r[t],enumerable:!0})},U=(n,r,t,e)=>{if(r&&typeof r=="object"||typeof r=="function")for(let i of R(r))!q.call(n,i)&&i!==t&&P(n,i,{get:()=>r[i],enumerable:!(e=K(r,i))||e.enumerable});return n};var z=n=>U(P({},"__esModule",{value:!0}),n);var er={};V(er,{AssetMinBuilder:()=>L,BalanceBuilder:()=>N,BaseConfig:()=>u,CallType:()=>f,ContractBuilder:()=>H,ContractConfig:()=>m,ExtrinsicBuilder:()=>rr,ExtrinsicConfig:()=>a,FeeBuilder:()=>tr,SubstrateQueryConfig:()=>c,XcmVersion:()=>y,evm:()=>I,substrate:()=>k});module.exports=z(er);var _t=require("@polkadot/api-augment");var f=(t=>(t.Evm="Evm",t.Substrate="Substrate",t))(f||{});var u=class{module;func;type;constructor({module:r,func:t,type:e}){this.module=r,this.func=t,this.type=e}};var c=class extends u{args;transform;constructor({args:r=[],transform:t,type:e="Substrate",...i}){super({...i,type:e}),this.args=r,this.transform=t}};function L(){return{assetRegistry:$,assets:G}}function $(){let n="assetRegistry";return{assetMetadatas:()=>({build:({asset:r})=>new c({module:n,func:"assetMetadatas",args:[r],transform:async t=>t.unwrapOrDefault().minimalBalance.toBigInt()})}),currencyMetadatas:()=>({build:({asset:r})=>new c({module:n,func:"currencyMetadatas",args:[r],transform:async t=>t.unwrapOrDefault().minimalBalance.toBigInt()})})}}function G(){return{asset:()=>({build:({asset:n})=>new c({module:"assets",func:"asset",args:[n],transform:async r=>r.unwrapOrDefault().minBalance.toBigInt()})})}}var X=require("@polkadot/util");var x=require("@moonbeam-network/xcm-utils"),p=require("@polkadot/util"),w=require("@polkadot/util-crypto");var m=class extends u{args;address;constructor({args:r,address:t,...e}){super({...e,type:"Evm"}),this.args=r,this.address=t}};function T(){return{transfer:(n=4e9)=>({build:({address:r,amount:t,asset:e,destination:i})=>new m({args:[(0,p.isString)(e)?(0,x.formatAssetIdToERC20)(e):e,t,E(r,i),n],func:"transfer",module:"Xtokens"})}),transferMultiCurrencies:(n=4e9)=>({build:({address:r,amount:t,asset:e,destination:i,fee:o,feeAsset:s})=>new m({args:[[[(0,p.isString)(e)?(0,x.formatAssetIdToERC20)(e):e,t],[(0,p.isString)(s)?(0,x.formatAssetIdToERC20)(s):s,o]],1,E(r,i),n],func:"transferMultiCurrencies",module:"Xtokens"})})}}function E(n,r){let e=`0x${r.isEvmParachain()?"03":"01"}${(0,p.u8aToHex)((0,w.decodeAddress)(n),-1,!1)}00`;return[1,r.parachainId?[`0x0000000${r.parachainId.toString(16)}`,e]:[e]]}function H(){return{Xtokens:T}}function N(){return{evm:I,substrate:k}}function I(){return{erc20:Q}}function k(){return{assets:J,system:j,tokens:Y}}function Q(){return{build:({address:n,asset:r})=>{if(!r||!(0,X.isString)(r))throw new Error(`Invalid contract address: ${r}`);return new m({address:r,args:[n],func:"balanceOf",module:"Erc20"})}}}function J(){return{account:()=>({build:({address:n,asset:r})=>new c({module:"assets",func:"account",args:[r,n],transform:async t=>t.unwrapOrDefault().balance.toBigInt()})})}}function j(){return{account:()=>({build:({address:n})=>new c({module:"system",func:"account",args:[n],transform:async r=>{let t=r.data,e=t.miscFrozen??t.frozen;return BigInt(t.free.sub(e).toString())}})}),accountEquilibrium:()=>({build:({address:n,asset:r})=>new c({module:"system",func:"account",args:[n],transform:async t=>{var s;if(t.data.isEmpty)return 0n;let e=t.data.toJSON(),i;if(Array.isArray(e)&&(i=e),Array.isArray((s=e==null?void 0:e.v0)==null?void 0:s.balance)&&(i=e.v0.balance),!i)throw new Error("Can't get balance from Equilibrium chain");let o=i.find(([g])=>g===r);return o?BigInt(o[1].positive):0n}})})}}function Y(){return{accounts:()=>({build:({address:n,asset:r})=>new c({module:"tokens",func:"accounts",args:[n,r],transform:async({free:t,frozen:e})=>BigInt(t.sub(e).toString())})})}}var a=class extends u{getArgs;constructor({getArgs:r,...t}){super({...t,type:"Substrate"}),this.getArgs=r}};var S="eqBalances";function v(){return{xcmTransfer:()=>({build:({address:n,amount:r,asset:t,destination:e})=>new a({module:S,func:"xcmTransfer",getArgs:()=>[t,r,{parents:1,interior:{X2:[{Parachain:e.parachainId},{AccountKey20:{network:"Any",key:n}}]}},"ThisAccWillPay"]})}),transferXcm:()=>({build:({address:n,amount:r,asset:t,destination:e,fee:i,feeAsset:o})=>new a({module:S,func:"transferXcm",getArgs:()=>{let s=r-i>0n?r-i:0n;return[[t,t===o?s:r],[o,i],{parents:1,interior:{X2:[{Parachain:e.parachainId},{AccountKey20:{network:"Any",key:n}}]}}]}})})}}var F=require("@polkadot/types");var y=(e=>(e.v1="V1",e.v2="V2",e.v3="V3",e))(y||{});function d(n,r=0){if(!n)return"V1";let{type:t}=n.meta.args[r],e=n.meta.registry.createType(t.toString()),i=(0,F.getTypeDef)(e==null?void 0:e.toRawType());if(!i.sub)return"V1";let o=Array.isArray(i.sub)?i.sub.map(s=>s.name):[i.sub.name];if(o.includes("V1"))return"V1";if(o.includes("V2"))return"V2";if(o.includes("V3"))return"V3";throw new Error("Can't find Xcm version")}function l({asset:n,address:r,destination:t,func:e,parents:i=1}){let o=d(e);return[{[o]:{parents:i,interior:{X1:{Parachain:t.parachainId}}}},{[o]:{parents:0,interior:{X1:{AccountKey20:{network:"Any",key:r}}}}},{[o]:n},0,"Unlimited"]}var C="polkadotXcm";function O(){return{limitedReserveTransferAssets:()=>{let n="limitedReserveTransferAssets";return{here:()=>({build:r=>new a({module:C,func:n,getArgs:t=>l({...r,func:t,asset:[{id:{Concrete:{parents:0,interior:"Here"}},fun:{Fungible:r.amount}}]})})}),X1:()=>({build:r=>new a({module:C,func:n,getArgs:t=>l({...r,func:t,asset:[{id:{Concrete:{parents:0,interior:{X1:{PalletInstance:5}}}},fun:{Fungible:r.amount}}]})})}),X2:()=>({build:r=>new a({module:C,func:n,getArgs:t=>l({...r,func:t,asset:[{id:{Concrete:{parents:0,interior:{X2:[{PalletInstance:r.palletInstance},{GeneralIndex:r.asset}]}}},fun:{Fungible:r.amount}}]})})})}},limitedReserveWithdrawAssets:()=>{let n="limitedReserveWithdrawAssets";return{X2:()=>({build:r=>new a({module:C,func:n,getArgs:t=>l({...r,func:t,asset:[{id:{Concrete:{parents:1,interior:{X2:[{Parachain:r.destination.parachainId},{PalletInstance:r.palletInstance}]}}},fun:{Fungible:r.amount}}]})})})}}}}function B(n,r){var e;let t=(e=r==null?void 0:r.meta.args.at(-1))==null?void 0:e.type;return t?t.eq("XcmV2WeightLimit")?{Limited:n}:t.eq("XcmV3WeightLimit")?"Unlimited":n:n}var b="xTokens";function M(){return{transfer:()=>({build:({address:n,amount:r,asset:t,destination:e,source:i})=>new a({module:b,func:"transfer",getArgs:o=>{let s=d(o,2);return[t,r,{[s]:{parents:1,interior:{X2:[{Parachain:e.parachainId},{AccountKey20:{network:"Any",key:n}}]}}},B(i.weight,o)]}})}),transferMultiAsset:n=>{let r="transferMultiasset";return{X1:()=>({build:({address:t,amount:e,destination:i})=>new a({module:b,func:r,getArgs:o=>{let s=d(o,1);return[{[s]:{id:{Concrete:{parents:1,interior:{X1:{Parachain:n}}}},fun:{Fungible:e}}},{[s]:{parents:1,interior:{X2:[{Parachain:i.parachainId},{AccountKey20:{network:"Any",key:t}}]}}},"Unlimited"]}})}),X2:()=>({build:({address:t,amount:e,asset:i,destination:o,source:s})=>new a({module:b,func:r,getArgs:g=>{let h=d(g,1);return[{[h]:{id:{Concrete:{parents:1,interior:{X2:[{Parachain:n},{GeneralKey:i}]}}},fun:{Fungible:e}}},{[h]:{parents:1,interior:{X2:[{Parachain:o.parachainId},{AccountKey20:{network:"Any",key:t}}]}}},B(s.weight,g)]}})})}},transferMultiCurrencies:()=>({build:({address:n,amount:r,asset:t,destination:e,fee:i,feeAsset:o})=>new a({module:b,func:"transferMulticurrencies",getArgs:()=>[[[t,r],[o,i]],1,{["V3"]:{parents:1,interior:{X2:[{Parachain:e.parachainId},{AccountKey20:{key:n}}]}}},"Unlimited"]})})}}var D="xTransfer";function W(){return{transfer:()=>{let n="transfer";return{here:()=>({build:({address:r,amount:t,destination:e})=>new a({module:D,func:n,getArgs:()=>[{id:{Concrete:{parents:0,interior:"Here"}},fun:{Fungible:t}},{parents:1,interior:{X2:[{Parachain:e.parachainId},{AccountKey20:{key:r}}]}},{refTime:5e9,proofSize:0}]})}),X2:()=>({build:({address:r,amount:t,destination:e,palletInstance:i})=>new a({module:D,func:n,getArgs:()=>[{id:{Concrete:{parents:1,interior:{X2:[{Parachain:e.parachainId},{PalletInstance:i}]}}},fun:{Fungible:t||1n}},{parents:1,interior:{X2:[{Parachain:e.parachainId},{AccountKey20:{key:r}}]}},{refTime:5e9,proofSize:0}]})})}}}}var Z="xcmPallet";function _(){return{limitedReserveTransferAssets:(n=1)=>{let r="limitedReserveTransferAssets";return{here:()=>({build:t=>new a({module:Z,func:r,getArgs:e=>l({...t,parents:n,func:e,asset:[{id:{Concrete:{parents:0,interior:"Here"}},fun:{Fungible:t.amount}}]})})})}}}}function rr(){return{eqBalances:v,xTokens:M,xTransfer:W,polkadotXcm:O,xcmPallet:_}}var A=class{api;call;type="Substrate";constructor({api:r,call:t}){this.api=r,this.call=t}};function tr(){return{assetManager:nr}}function nr(){return{assetTypeUnitsPerSecond:(n=1e9)=>({build:({api:r,asset:t})=>new A({api:r,call:async()=>{let e=await r.query.assetManager.assetIdType(t);if(e.isNone)throw new Error(`No asset type found for asset ${t}`);let i=e.unwrap(),s=(await r.query.assetManager.assetTypeUnitsPerSecond(i)).unwrapOrDefault().toBigInt();return BigInt(n)*s/BigInt(10**12)}})})}}0&&(module.exports={AssetMinBuilder,BalanceBuilder,BaseConfig,CallType,ContractBuilder,ContractConfig,ExtrinsicBuilder,ExtrinsicConfig,FeeBuilder,SubstrateQueryConfig,XcmVersion,evm,substrate});
1
+ "use strict";var w=Object.defineProperty;var H=Object.getOwnPropertyDescriptor;var G=Object.getOwnPropertyNames;var U=Object.prototype.hasOwnProperty;var N=(e,r)=>{for(var t in r)w(e,t,{get:r[t],enumerable:!0})},Q=(e,r,t,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let i of G(r))!U.call(e,i)&&i!==t&&w(e,i,{get:()=>r[i],enumerable:!(n=H(r,i))||n.enumerable});return e};var K=e=>Q(w({},"__esModule",{value:!0}),e);var ur={};N(ur,{AssetMinBuilder:()=>L,BalanceBuilder:()=>rr,BaseConfig:()=>l,CallType:()=>g,ContractBuilder:()=>Z,ContractConfig:()=>m,ExtrinsicBuilder:()=>sr,ExtrinsicConfig:()=>a,FeeBuilder:()=>ar,SubstrateQueryConfig:()=>c,XcmVersion:()=>P,evm:()=>D,substrate:()=>F});module.exports=K(ur);var Nt=require("@polkadot/api-augment");var g=(t=>(t.Evm="Evm",t.Substrate="Substrate",t))(g||{});var l=class{module;func;type;constructor({module:r,func:t,type:n}){this.module=r,this.func=t,this.type=n}};var c=class extends l{args;transform;constructor({args:r=[],transform:t,type:n="Substrate",...i}){super({...i,type:n}),this.args=r,this.transform=t}};function L(){return{assetRegistry:J,assets:j}}function J(){let e="assetRegistry";return{assetMetadatas:()=>({build:({asset:r})=>new c({module:e,func:"assetMetadatas",args:[r],transform:async t=>t.unwrapOrDefault().minimalBalance.toBigInt()})}),currencyMetadatas:()=>({build:({asset:r})=>new c({module:e,func:"currencyMetadatas",args:[r],transform:async t=>t.unwrapOrDefault().minimalBalance.toBigInt()})})}}function j(){return{asset:()=>({build:({asset:e})=>new c({module:"assets",func:"asset",args:[e],transform:async r=>r.unwrapOrDefault().minBalance.toBigInt()})})}}var X=require("@polkadot/util"),S=require("@polkadot/util-crypto");var y=require("@moonbeam-network/xcm-utils"),f=require("@polkadot/util"),b=require("@polkadot/util-crypto");var m=class extends l{args;address;constructor({args:r,address:t,...n}){super({...n,type:"Evm"}),this.args=r,this.address=t}};var I=18446744073709551615n;function v(){return{transfer:(e=I)=>({build:({address:r,amount:t,asset:n,destination:i})=>new m({args:[(0,f.isString)(n)?(0,y.formatAssetIdToERC20)(n):n,t,T(r,i),e],func:"transfer",module:"Xtokens"})}),transferMultiCurrencies:(e=I)=>({build:({address:r,amount:t,asset:n,destination:i,fee:o,feeAsset:s})=>new m({args:[[[(0,f.isString)(n)?(0,y.formatAssetIdToERC20)(n):n,t],[(0,f.isString)(s)?(0,y.formatAssetIdToERC20)(s):s,o]],1,T(r,i),e],func:"transferMultiCurrencies",module:"Xtokens"})}),transferWithEvmTo32:(e=I)=>({build:({address:r,amount:t,asset:n,destination:i})=>{let o=Y(r,i);return new m({args:[(0,f.isString)(n)?(0,y.formatAssetIdToERC20)(n):n,t,o,e],func:"transfer",module:"Xtokens"})}})}}function Y(e,r){let t="01",n=(0,b.evmToAddress)(e),i=`0x${t}${(0,f.u8aToHex)((0,b.decodeAddress)(n),-1,!1)}00`;return[1,r.parachainId?[`0x0000000${r.parachainId.toString(16)}`,i]:[i]]}function T(e,r){let n=`0x${r.isEvmParachain()?"03":"01"}${(0,f.u8aToHex)((0,b.decodeAddress)(e),-1,!1)}00`;return[1,r.parachainId?[`0x0000000${r.parachainId.toString(16)}`,n]:[n]]}function Z(){return{Xtokens:v}}function rr(){return{evm:D,substrate:F}}function D(){return{erc20:tr}}function F(){return{assets:nr,system:er,tokens:ir}}function tr(){return{build:({address:e,asset:r})=>{if(!r||!(0,X.isString)(r))throw new Error(`Invalid contract address: ${r}`);return new m({address:r,args:[e],func:"balanceOf",module:"Erc20"})}}}function nr(){return{account:()=>({build:({address:e,asset:r})=>new c({module:"assets",func:"account",args:[r,e],transform:async t=>t.unwrapOrDefault().balance.toBigInt()})})}}function er(){return{account:()=>({build:({address:e})=>new c({module:"system",func:"account",args:[e],transform:async r=>{let t=r.data,n=t.miscFrozen??t.frozen;return BigInt(t.free.sub(n).toString())}})}),accountEquilibrium:()=>({build:({address:e,asset:r})=>new c({module:"system",func:"account",args:[e],transform:async t=>{var s;if(t.data.isEmpty)return 0n;let n=t.data.toJSON(),i;if(Array.isArray(n)&&(i=n),Array.isArray((s=n==null?void 0:n.v0)==null?void 0:s.balance)&&(i=n.v0.balance),!i)throw new Error("Can't get balance from Equilibrium chain");let o=i.find(([B])=>B===r);return o?BigInt(o[1].positive):0n}})}),accountEvmTo32:()=>({build:({address:e})=>{let r=(0,S.evmToAddress)(e);return new c({module:"system",func:"account",args:[r],transform:async t=>{let n=t.data,i=n.miscFrozen??n.frozen;return BigInt(n.free.sub(i).toString())}})}})}}function ir(){return{accounts:()=>({build:({address:e,asset:r})=>new c({module:"tokens",func:"accounts",args:[e,r],transform:async({free:t,frozen:n})=>BigInt(t.sub(n).toString())})})}}var k=require("@polkadot/types"),M=require("@polkadot/util"),O=require("@polkadot/util-crypto");var P=(n=>(n.v1="V1",n.v2="V2",n.v3="V3",n))(P||{});function p(e,r=0){if(!e)return"V1";let{type:t}=e.meta.args[r],n=e.meta.registry.createType(t.toString()),i=(0,k.getTypeDef)(n==null?void 0:n.toRawType());if(!i.sub)return"V1";let o=Array.isArray(i.sub)?i.sub.map(s=>s.name):[i.sub.name];if(o.includes("V1"))return"V1";if(o.includes("V2"))return"V2";if(o.includes("V3"))return"V3";throw new Error("Can't find Xcm version")}function u(e){return e.length===42&&e.startsWith("0x")?{AccountKey20:{key:e}}:{AccountId32:{id:(0,M.u8aToHex)((0,O.decodeAddress)(e)),network:null}}}var a=class extends l{getArgs;constructor({getArgs:r,...t}){super({...t,type:"Substrate"}),this.getArgs=r}};var W="eqBalances";function _(){return{xcmTransfer:()=>({build:({address:e,amount:r,asset:t,destination:n})=>new a({module:W,func:"xcmTransfer",getArgs:()=>[t,r,{parents:1,interior:{X2:[{Parachain:n.parachainId},u(e)]}},"ThisAccWillPay"]})}),transferXcm:()=>({build:({address:e,amount:r,asset:t,destination:n,fee:i,feeAsset:o})=>new a({module:W,func:"transferXcm",getArgs:()=>{let s=r-i>0n?r-i:0n;return[[t,t===o?s:r],[o,i],{parents:1,interior:{X2:[{Parachain:n.parachainId},u(e)]}}]}})})}}function d({asset:e,address:r,destination:t,func:n,parents:i=1,feeIndex:o=0}){let s=p(n);return[{[s]:{parents:i,interior:{X1:{Parachain:t.parachainId}}}},{[s]:{parents:0,interior:{X1:u(r)}}},{[s]:e},o,"Unlimited"]}var h="polkadotXcm";function R(){return{limitedReserveTransferAssets:()=>{let e="limitedReserveTransferAssets";return{here:()=>({build:r=>new a({module:h,func:e,getArgs:t=>d({...r,func:t,asset:[{id:{Concrete:{parents:0,interior:"Here"}},fun:{Fungible:r.amount}}]})})}),X1:()=>({build:r=>new a({module:h,func:e,getArgs:t=>d({...r,func:t,asset:[{id:{Concrete:{parents:0,interior:{X1:{PalletInstance:r.palletInstance}}}},fun:{Fungible:r.amount}}]})})}),X2:()=>({build:r=>new a({module:h,func:e,getArgs:t=>{let n=!!r.feeAsset&&r.asset!==r.feeAsset,i=[{id:{Concrete:{parents:0,interior:{X2:[{PalletInstance:r.palletInstance},{GeneralIndex:r.asset}]}}},fun:{Fungible:r.amount}}];return n&&i.push({id:{Concrete:{parents:0,interior:{X2:[{PalletInstance:r.palletInstance},{GeneralIndex:r.feeAsset}]}}},fun:{Fungible:r.fee}}),d({...r,func:t,asset:i,feeIndex:n?1:0})}})})}},limitedReserveWithdrawAssets:()=>{let e="limitedReserveWithdrawAssets";return{X2:()=>({build:r=>new a({module:h,func:e,getArgs:t=>d({...r,func:t,asset:[{id:{Concrete:{parents:1,interior:{X2:[{Parachain:r.destination.parachainId},{PalletInstance:r.palletInstance}]}}},fun:{Fungible:r.amount}}]})})})}}}}function x(){return"Unlimited"}function C(e,r,t){return{[e]:{parents:1,interior:{X2:[{Parachain:t.parachainId},u(r)]}}}}var A="xTokens";function z(){return{transfer:()=>({build:({address:e,amount:r,asset:t,destination:n})=>new a({module:A,func:"transfer",getArgs:i=>{let o=p(i,2);return[t,r,C(o,e,n),x()]}})}),transferMultiAsset:e=>{let r="transferMultiasset";return{here:()=>({build:({address:t,amount:n,destination:i})=>new a({module:A,func:r,getArgs:o=>{let s=p(o,1);return[{[s]:{id:{Concrete:{parents:0,interior:"Here"}},fun:{Fungible:n}}},C(s,t,i),x()]}})}),X1:()=>({build:({address:t,amount:n,destination:i})=>new a({module:A,func:r,getArgs:o=>{let s=p(o,1);return[{[s]:{id:{Concrete:{parents:1,interior:{X1:{Parachain:e}}}},fun:{Fungible:n}}},C(s,t,i),x()]}})}),X2:()=>({build:({address:t,amount:n,asset:i,destination:o})=>new a({module:A,func:r,getArgs:s=>{let B=p(s,1);return[{[B]:{id:{Concrete:{parents:1,interior:{X2:[{Parachain:e},{GeneralKey:i}]}}},fun:{Fungible:n}}},C(B,t,o),x()]}})})}},transferMultiCurrencies:()=>({build:({address:e,amount:r,asset:t,destination:n,fee:i,feeAsset:o})=>new a({module:A,func:"transferMulticurrencies",getArgs:()=>[[[t,r],[o,i]],1,C("V3",e,n),x()]})})}}var V="xTransfer";function $(){return{transfer:()=>{let e="transfer";return{here:()=>({build:({address:r,amount:t,destination:n})=>new a({module:V,func:e,getArgs:()=>[{id:{Concrete:{parents:0,interior:"Here"}},fun:{Fungible:t}},{parents:1,interior:{X2:[{Parachain:n.parachainId},u(r)]}},{refTime:5e9,proofSize:0}]})}),X2:()=>({build:({address:r,amount:t,destination:n,palletInstance:i})=>new a({module:V,func:e,getArgs:()=>[{id:{Concrete:{parents:1,interior:{X2:[{Parachain:n.parachainId},{PalletInstance:i}]}}},fun:{Fungible:t||1n}},{parents:1,interior:{X2:[{Parachain:n.parachainId},u(r)]}},{refTime:5e9,proofSize:0}]})})}}}}var or="xcmPallet";function q(){return{limitedReserveTransferAssets:(e=1)=>{let r="limitedReserveTransferAssets";return{here:()=>({build:t=>new a({module:or,func:r,getArgs:n=>d({...t,parents:e,func:n,asset:[{id:{Concrete:{parents:0,interior:"Here"}},fun:{Fungible:t.amount}}]})})})}}}}function sr(){return{eqBalances:_,xTokens:z,xTransfer:$,polkadotXcm:R,xcmPallet:q}}var E=class{api;call;type="Substrate";constructor({api:r,call:t}){this.api=r,this.call=t}};function ar(){return{assetManager:cr}}function cr(){return{assetTypeUnitsPerSecond:(e=1e9)=>({build:({api:r,asset:t})=>new E({api:r,call:async()=>{let n=await r.query.assetManager.assetIdType(t);if(n.isNone)throw new Error(`No asset type found for asset ${t}`);let i=n.unwrap(),s=(await r.query.assetManager.assetTypeUnitsPerSecond(i)).unwrapOrDefault().toBigInt();return BigInt(e)*s/BigInt(10**12)}})})}}0&&(module.exports={AssetMinBuilder,BalanceBuilder,BaseConfig,CallType,ContractBuilder,ContractConfig,ExtrinsicBuilder,ExtrinsicConfig,FeeBuilder,SubstrateQueryConfig,XcmVersion,evm,substrate});
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/builder.interfaces.ts","../src/types/BaseConfig.ts","../src/types/substrate/SubstrateQueryConfig.ts","../src/asset-min/AssetMinBuilder.ts","../src/balance/BalanceBuilder.ts","../src/contract/contracts/Xtokens/Xtokens.ts","../src/contract/ContractConfig.ts","../src/contract/ContractBuilder.ts","../src/extrinsic/ExtrinsicConfig.ts","../src/extrinsic/pallets/eqBalances/eqBalances.ts","../src/extrinsic/ExtrinsicBuilder.utils.ts","../src/extrinsic/ExtrinsicBuilder.interfaces.ts","../src/extrinsic/pallets/polkadotXcm/polkadotXcm.util.ts","../src/extrinsic/pallets/polkadotXcm/polkadotXcm.ts","../src/extrinsic/pallets/xTokens/xTokens.utils.ts","../src/extrinsic/pallets/xTokens/xTokens.ts","../src/extrinsic/pallets/xTransfer/xTransfer.ts","../src/extrinsic/pallets/xcmPallet/xcmPallet.ts","../src/extrinsic/ExtrinsicBuilder.ts","../src/types/substrate/SubstrateCallConfig.ts","../src/fee/FeeBuilder.ts"],"sourcesContent":["import '@polkadot/api-augment';\n\nexport * from './asset-min';\nexport * from './balance';\nexport * from './builder.interfaces';\nexport * from './contract';\nexport * from './extrinsic';\nexport * from './fee';\nexport * from './types/BaseConfig';\nexport * from './types/substrate/SubstrateQueryConfig';\n","export enum CallType {\n Evm = 'Evm',\n Substrate = 'Substrate',\n}\n","import { CallType } from '../builder.interfaces';\n\nexport interface BaseConfigConstructorParams {\n module: string;\n func: string;\n type: CallType;\n}\n\nexport class BaseConfig {\n readonly module: string;\n\n readonly func: string;\n\n readonly type: CallType;\n\n constructor({ module, func, type }: BaseConfigConstructorParams) {\n this.module = module;\n this.func = func;\n this.type = type;\n }\n}\n","import { SetOptional } from 'type-fest';\nimport { CallType } from '../../builder.interfaces';\nimport { BaseConfig, BaseConfigConstructorParams } from '../BaseConfig';\n\nexport interface QueryConfigConstructorParams\n extends SetOptional<BaseConfigConstructorParams, 'type'> {\n args?: any[];\n transform: (data: any) => Promise<bigint>;\n}\n\nexport class SubstrateQueryConfig extends BaseConfig {\n readonly args: any[];\n\n readonly transform: (data: any) => Promise<bigint>;\n\n constructor({\n args = [],\n transform,\n type = CallType.Substrate,\n ...other\n }: QueryConfigConstructorParams) {\n super({ ...other, type });\n\n this.args = args;\n this.transform = transform;\n }\n}\n","/* eslint-disable sort-keys */\n/* eslint-disable @typescript-eslint/no-use-before-define */\n\nimport { Option } from '@polkadot/types';\nimport { PalletAssetsAssetDetails } from '@polkadot/types/lookup';\nimport { SubstrateQueryConfig } from '../types/substrate/SubstrateQueryConfig';\nimport { AssetMinConfigBuilder } from './AssetMinBuilder.interfaces';\n\nexport function AssetMinBuilder() {\n return {\n assetRegistry,\n assets,\n };\n}\n\nfunction assetRegistry() {\n const pallet = 'assetRegistry';\n return {\n assetMetadatas: (): AssetMinConfigBuilder => ({\n build: ({ asset }) =>\n new SubstrateQueryConfig({\n module: pallet,\n func: 'assetMetadatas',\n args: [asset],\n transform: async (response: Option<any>): Promise<bigint> =>\n response.unwrapOrDefault().minimalBalance.toBigInt(),\n }),\n }),\n currencyMetadatas: (): AssetMinConfigBuilder => ({\n build: ({ asset }) =>\n new SubstrateQueryConfig({\n module: pallet,\n func: 'currencyMetadatas',\n args: [asset],\n transform: async (response: Option<any>): Promise<bigint> =>\n response.unwrapOrDefault().minimalBalance.toBigInt(),\n }),\n }),\n };\n}\n\nfunction assets() {\n return {\n asset: (): AssetMinConfigBuilder => ({\n build: ({ asset }) =>\n new SubstrateQueryConfig({\n module: 'assets',\n func: 'asset',\n args: [asset],\n transform: async (\n response: Option<PalletAssetsAssetDetails>,\n ): Promise<bigint> =>\n response.unwrapOrDefault().minBalance.toBigInt(),\n }),\n }),\n };\n}\n","/* eslint-disable sort-keys */\n/* eslint-disable @typescript-eslint/no-use-before-define */\n\nimport { Option } from '@polkadot/types';\nimport {\n FrameSystemAccountInfo,\n PalletAssetsAssetAccount,\n PalletBalancesAccountData,\n} from '@polkadot/types/lookup';\nimport { isString } from '@polkadot/util';\nimport { ContractConfig } from '../contract';\nimport { SubstrateQueryConfig } from '../types/substrate/SubstrateQueryConfig';\nimport {\n BalanceConfigBuilder,\n EquilibriumSystemBalanceData,\n PalletBalancesAccountDataOld,\n TokensPalletAccountData,\n} from './BalanceBuilder.interfaces';\n\nexport function BalanceBuilder() {\n return {\n evm,\n substrate,\n };\n}\n\nexport function evm() {\n return {\n erc20,\n };\n}\n\nexport function substrate() {\n return {\n assets,\n system,\n tokens,\n };\n}\n\nfunction erc20(): BalanceConfigBuilder {\n return {\n build: ({ address, asset }) => {\n if (!asset || !isString(asset)) {\n throw new Error(`Invalid contract address: ${asset}`);\n }\n\n return new ContractConfig({\n address: asset,\n args: [address],\n func: 'balanceOf',\n module: 'Erc20',\n });\n },\n };\n}\n\nfunction assets() {\n return {\n account: (): BalanceConfigBuilder => ({\n build: ({ address, asset }) =>\n new SubstrateQueryConfig({\n module: 'assets',\n func: 'account',\n args: [asset, address],\n transform: async (\n response: Option<PalletAssetsAssetAccount>,\n ): Promise<bigint> => response.unwrapOrDefault().balance.toBigInt(),\n }),\n }),\n };\n}\n\nfunction system() {\n return {\n account: (): BalanceConfigBuilder => ({\n build: ({ address }) =>\n new SubstrateQueryConfig({\n module: 'system',\n func: 'account',\n args: [address],\n transform: async (\n response: FrameSystemAccountInfo,\n ): Promise<bigint> => {\n const balance = response.data as PalletBalancesAccountData &\n PalletBalancesAccountDataOld;\n const frozen = balance.miscFrozen ?? balance.frozen;\n\n return BigInt(balance.free.sub(frozen).toString());\n },\n }),\n }),\n accountEquilibrium: (): BalanceConfigBuilder => ({\n build: ({ address, asset }) =>\n new SubstrateQueryConfig({\n module: 'system',\n func: 'account',\n args: [address],\n transform: async (response): Promise<bigint> => {\n if (response.data.isEmpty) {\n return 0n;\n }\n\n const res = response.data.toJSON() as unknown;\n let balances: EquilibriumSystemBalanceData | undefined;\n\n if (Array.isArray(res)) {\n balances = res;\n }\n\n if (Array.isArray((res as any)?.v0?.balance)) {\n balances = (res as any).v0.balance;\n }\n\n if (!balances) {\n throw new Error(\"Can't get balance from Equilibrium chain\");\n }\n\n const balance = balances.find(([assetId]) => assetId === asset);\n\n if (!balance) {\n return 0n;\n }\n\n return BigInt(balance[1].positive);\n },\n }),\n }),\n };\n}\n\nfunction tokens() {\n return {\n accounts: (): BalanceConfigBuilder => ({\n build: ({ address, asset }) =>\n new SubstrateQueryConfig({\n module: 'tokens',\n func: 'accounts',\n args: [address, asset],\n transform: async ({\n free,\n frozen,\n }: TokensPalletAccountData): Promise<bigint> =>\n BigInt(free.sub(frozen).toString()),\n }),\n }),\n };\n}\n","/* eslint-disable @typescript-eslint/no-use-before-define */\nimport { AnyChain } from '@moonbeam-network/xcm-types';\nimport { formatAssetIdToERC20 } from '@moonbeam-network/xcm-utils';\nimport { isString, u8aToHex } from '@polkadot/util';\nimport { decodeAddress } from '@polkadot/util-crypto';\nimport { ContractConfigBuilder } from '../../ContractBuilder.interfaces';\nimport { ContractConfig } from '../../ContractConfig';\n\nexport function Xtokens() {\n return {\n transfer: (weight = 4_000_000_000): ContractConfigBuilder => ({\n build: ({ address, amount, asset, destination }) =>\n new ContractConfig({\n args: [\n isString(asset) ? formatAssetIdToERC20(asset) : asset,\n amount,\n getDestinationMultilocation(address, destination),\n weight,\n ],\n func: 'transfer',\n module: 'Xtokens',\n }),\n }),\n transferMultiCurrencies: (\n weight = 4_000_000_000,\n ): ContractConfigBuilder => ({\n build: ({ address, amount, asset, destination, fee, feeAsset }) =>\n new ContractConfig({\n args: [\n [\n [isString(asset) ? formatAssetIdToERC20(asset) : asset, amount],\n [\n isString(feeAsset) ? formatAssetIdToERC20(feeAsset) : feeAsset,\n fee,\n ],\n ],\n 1, // index of the fee asset\n getDestinationMultilocation(address, destination),\n weight,\n ],\n func: 'transferMultiCurrencies',\n module: 'Xtokens',\n }),\n }),\n };\n}\n\ntype DestinationMultilocation = [\n /**\n * 1 - if transaction is going through a relay chain\n */\n 1,\n (\n | [\n /**\n * example '0x00000007DC'\n * 7DC - parachain id in hex\n * can be found here:\n * - https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fkusama-rpc.polkadot.io#/parachains\n * - https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frpc.polkadot.io#/parachains\n */\n string,\n /**\n * example '0x01%account%00',\n * enum = 01 (AccountId32)\n * networkId = 00 (any)\n */\n string,\n ]\n | [\n /**\n * example '0x01%account%00',\n * enum = 01 (AccountId32)\n * networkId = 00 (any)\n */\n string,\n ]\n ),\n];\n\nfunction getDestinationMultilocation(\n address: string,\n destination: AnyChain,\n): DestinationMultilocation {\n /* \n 01: AccountId32\n 03: AccountKey20\n https://docs.moonbeam.network/builders/interoperability/xcm/xc20/xtokens/#building-the-precompile-multilocation\n */\n const accountType = destination.isEvmParachain() ? '03' : '01';\n const acc = `0x${accountType}${u8aToHex(\n decodeAddress(address),\n -1,\n false,\n )}00`;\n\n return [\n 1,\n destination.parachainId\n ? [`0x0000000${destination.parachainId.toString(16)}`, acc]\n : [acc],\n ];\n}\n","import { CallType } from '../builder.interfaces';\nimport { BaseConfig, BaseConfigConstructorParams } from '../types/BaseConfig';\n\nexport interface ContractConfigConstructorParams\n extends Omit<BaseConfigConstructorParams, 'type'> {\n args: any[];\n address?: string;\n}\n\nexport class ContractConfig extends BaseConfig {\n readonly args: any[];\n\n readonly address?: string;\n\n constructor({ args, address, ...other }: ContractConfigConstructorParams) {\n super({ ...other, type: CallType.Evm });\n\n this.args = args;\n this.address = address;\n }\n}\n","import { Xtokens } from './contracts/Xtokens';\n\nexport function ContractBuilder() {\n return {\n Xtokens,\n };\n}\n","import { SubmittableExtrinsicFunction } from '@polkadot/api/types';\nimport { CallType } from '../builder.interfaces';\nimport { BaseConfig, BaseConfigConstructorParams } from '../types/BaseConfig';\n\nexport interface ExtrinsicConfigConstructorParams\n extends Omit<BaseConfigConstructorParams, 'type'> {\n getArgs: (func?: SubmittableExtrinsicFunction<'promise'>) => any[];\n}\n\nexport class ExtrinsicConfig extends BaseConfig {\n getArgs: (func?: SubmittableExtrinsicFunction<'promise'>) => any[];\n\n constructor({ getArgs, ...other }: ExtrinsicConfigConstructorParams) {\n super({ ...other, type: CallType.Substrate });\n\n this.getArgs = getArgs;\n }\n}\n","/* eslint-disable sort-keys */\nimport { ExtrinsicConfigBuilder } from '../../ExtrinsicBuilder.interfaces';\nimport { ExtrinsicConfig } from '../../ExtrinsicConfig';\n\nexport enum EqBalancesFee {\n SovereignAccWillPay = 'SovereignAccWillPay',\n TargetChainAccWillPay = 'TargetChainAccWillPay',\n ThisAccWillPay = 'ThisAccWillPay',\n}\n\nconst pallet = 'eqBalances';\n\nexport function eqBalances() {\n return {\n xcmTransfer: (): ExtrinsicConfigBuilder => ({\n build: ({ address, amount, asset, destination }) =>\n new ExtrinsicConfig({\n module: pallet,\n func: 'xcmTransfer',\n getArgs: () => [\n asset,\n amount,\n {\n parents: 1,\n interior: {\n X2: [\n {\n Parachain: destination.parachainId,\n },\n {\n AccountKey20: {\n network: 'Any',\n key: address,\n },\n },\n ],\n },\n },\n EqBalancesFee.ThisAccWillPay,\n ],\n }),\n }),\n transferXcm: (): ExtrinsicConfigBuilder => ({\n build: ({ address, amount, asset, destination, fee, feeAsset }) =>\n new ExtrinsicConfig({\n module: pallet,\n func: 'transferXcm',\n getArgs: () => {\n const amountWithoutFee = amount - fee > 0n ? amount - fee : 0n;\n\n return [\n [asset, asset === feeAsset ? amountWithoutFee : amount],\n [feeAsset, fee],\n {\n parents: 1,\n interior: {\n X2: [\n {\n Parachain: destination.parachainId,\n },\n {\n AccountKey20: {\n network: 'Any',\n key: address,\n },\n },\n ],\n },\n },\n ];\n },\n }),\n }),\n };\n}\n","import { SubmittableExtrinsicFunction } from '@polkadot/api/types';\nimport { getTypeDef } from '@polkadot/types';\nimport { XcmVersion } from './ExtrinsicBuilder.interfaces';\n\nexport function getExtrinsicArgumentVersion(\n func?: SubmittableExtrinsicFunction<'promise'>,\n index: number = 0,\n): XcmVersion {\n if (!func) return XcmVersion.v1;\n\n const { type } = func.meta.args[index];\n const instance = func.meta.registry.createType(type.toString());\n const raw = getTypeDef(instance?.toRawType());\n\n if (!raw.sub) {\n return XcmVersion.v1;\n }\n\n const versions = Array.isArray(raw.sub)\n ? raw.sub.map((x) => x.name)\n : [raw.sub.name];\n\n if (versions.includes(XcmVersion.v1)) {\n return XcmVersion.v1;\n }\n\n if (versions.includes(XcmVersion.v2)) {\n return XcmVersion.v2;\n }\n\n if (versions.includes(XcmVersion.v3)) {\n return XcmVersion.v3;\n }\n\n throw new Error(\"Can't find Xcm version\");\n}\n","import { AnyChain, ChainAssetId } from '@moonbeam-network/xcm-types';\nimport { ExtrinsicConfig } from './ExtrinsicConfig';\n\nexport interface ExtrinsicConfigBuilder {\n build: (params: ExtrinsicConfigBuilderPrams) => ExtrinsicConfig;\n}\n\nexport interface ExtrinsicConfigBuilderPrams {\n address: string;\n amount: bigint;\n asset: ChainAssetId;\n destination: AnyChain;\n fee: bigint;\n feeAsset: ChainAssetId;\n palletInstance?: number;\n source: AnyChain;\n}\n\nexport enum XcmVersion {\n v1 = 'V1',\n v2 = 'V2',\n v3 = 'V3',\n}\n\nexport type Parents = 0 | 1;\n","/* eslint-disable sort-keys */\nimport { SubmittableExtrinsicFunction } from '@polkadot/api/types';\nimport {\n ExtrinsicConfigBuilderPrams,\n Parents,\n} from '../../ExtrinsicBuilder.interfaces';\nimport { getExtrinsicArgumentVersion } from '../../ExtrinsicBuilder.utils';\n\nexport interface GetExtrinsicParams extends ExtrinsicConfigBuilderPrams {\n asset: any;\n func?: SubmittableExtrinsicFunction<'promise'>;\n parents?: Parents;\n}\n\nexport function getPolkadotXcmExtrinsicArgs({\n asset,\n address,\n destination,\n func,\n parents = 1,\n}: GetExtrinsicParams): any[] {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n const version = getExtrinsicArgumentVersion(func);\n\n return [\n {\n [version]: {\n parents,\n interior: {\n X1: {\n Parachain: destination.parachainId,\n },\n },\n },\n },\n {\n [version]: {\n parents: 0,\n interior: {\n X1: {\n AccountKey20: {\n network: 'Any',\n key: address,\n },\n },\n },\n },\n },\n {\n [version]: asset,\n },\n 0,\n 'Unlimited',\n ];\n}\n","/* eslint-disable sort-keys */\nimport { ExtrinsicConfigBuilder } from '../../ExtrinsicBuilder.interfaces';\nimport { ExtrinsicConfig } from '../../ExtrinsicConfig';\nimport { getPolkadotXcmExtrinsicArgs } from './polkadotXcm.util';\n\nconst pallet = 'polkadotXcm';\n\nexport function polkadotXcm() {\n return {\n limitedReserveTransferAssets: () => {\n const func = 'limitedReserveTransferAssets';\n\n return {\n here: (): ExtrinsicConfigBuilder => ({\n build: (params) =>\n new ExtrinsicConfig({\n module: pallet,\n func,\n getArgs: (extrinsicFunction) =>\n getPolkadotXcmExtrinsicArgs({\n ...params,\n func: extrinsicFunction,\n asset: [\n {\n id: {\n Concrete: {\n parents: 0,\n interior: 'Here',\n },\n },\n fun: {\n Fungible: params.amount,\n },\n },\n ],\n }),\n }),\n }),\n X1: (): ExtrinsicConfigBuilder => ({\n build: (params) =>\n new ExtrinsicConfig({\n module: pallet,\n func,\n getArgs: (extrinsicFunction) =>\n getPolkadotXcmExtrinsicArgs({\n ...params,\n func: extrinsicFunction,\n asset: [\n {\n id: {\n Concrete: {\n parents: 0,\n interior: {\n X1: {\n PalletInstance: 5,\n },\n },\n },\n },\n fun: {\n Fungible: params.amount,\n },\n },\n ],\n }),\n }),\n }),\n X2: (): ExtrinsicConfigBuilder => ({\n build: (params) =>\n new ExtrinsicConfig({\n module: pallet,\n func,\n getArgs: (extrinsicFunction) =>\n getPolkadotXcmExtrinsicArgs({\n ...params,\n func: extrinsicFunction,\n asset: [\n {\n id: {\n Concrete: {\n parents: 0,\n interior: {\n X2: [\n {\n PalletInstance: params.palletInstance,\n },\n {\n GeneralIndex: params.asset,\n },\n ],\n },\n },\n },\n fun: {\n Fungible: params.amount,\n },\n },\n ],\n }),\n }),\n }),\n };\n },\n limitedReserveWithdrawAssets: () => {\n const func = 'limitedReserveWithdrawAssets';\n\n return {\n X2: (): ExtrinsicConfigBuilder => ({\n build: (params) =>\n new ExtrinsicConfig({\n module: pallet,\n func,\n getArgs: (extrinsicFunction) =>\n getPolkadotXcmExtrinsicArgs({\n ...params,\n func: extrinsicFunction,\n asset: [\n {\n id: {\n Concrete: {\n parents: 1,\n interior: {\n X2: [\n {\n Parachain: params.destination.parachainId,\n },\n {\n PalletInstance: params.palletInstance,\n },\n ],\n },\n },\n },\n fun: {\n Fungible: params.amount,\n },\n },\n ],\n }),\n }),\n }),\n };\n },\n };\n}\n","import { SubmittableExtrinsicFunction } from '@polkadot/api/types';\nimport { XTokensWeightLimit } from './xTokens.interfaces';\n\n/**\n * Workaround for weight parameter type change in xTokens pallet\n * https://github.com/open-web3-stack/open-runtime-module-library/pull/841\n */\nexport function getWeight(\n weight: number,\n func?: SubmittableExtrinsicFunction<'promise'>,\n): XTokensWeightLimit {\n const type = func?.meta.args.at(-1)?.type;\n\n if (!type) {\n return weight;\n }\n\n if (type.eq('XcmV2WeightLimit')) {\n return {\n Limited: weight,\n };\n }\n\n if (type.eq('XcmV3WeightLimit')) {\n return 'Unlimited';\n }\n\n return weight;\n}\n","/* eslint-disable sort-keys */\nimport {\n ExtrinsicConfigBuilder,\n XcmVersion,\n} from '../../ExtrinsicBuilder.interfaces';\nimport { getExtrinsicArgumentVersion } from '../../ExtrinsicBuilder.utils';\nimport { ExtrinsicConfig } from '../../ExtrinsicConfig';\nimport { getWeight } from './xTokens.utils';\n\nconst pallet = 'xTokens';\n\nexport function xTokens() {\n return {\n transfer: (): ExtrinsicConfigBuilder => ({\n build: ({ address, amount, asset, destination, source }) =>\n new ExtrinsicConfig({\n module: pallet,\n func: 'transfer',\n getArgs: (func) => {\n const version = getExtrinsicArgumentVersion(func, 2);\n\n return [\n asset,\n amount,\n {\n [version]: {\n parents: 1,\n interior: {\n X2: [\n {\n Parachain: destination.parachainId,\n },\n {\n AccountKey20: {\n network: 'Any',\n key: address,\n },\n },\n ],\n },\n },\n },\n getWeight(source.weight, func),\n ];\n },\n }),\n }),\n transferMultiAsset: (originParachainId: number) => {\n const funcName = 'transferMultiasset';\n\n return {\n X1: (): ExtrinsicConfigBuilder => ({\n build: ({ address, amount, destination }) =>\n new ExtrinsicConfig({\n module: pallet,\n func: funcName,\n getArgs: (func) => {\n const version = getExtrinsicArgumentVersion(func, 1);\n\n return [\n {\n [version]: {\n id: {\n Concrete: {\n parents: 1,\n interior: {\n X1: {\n Parachain: originParachainId,\n },\n },\n },\n },\n fun: {\n Fungible: amount,\n },\n },\n },\n {\n [version]: {\n parents: 1,\n interior: {\n X2: [\n {\n Parachain: destination.parachainId,\n },\n {\n AccountKey20: {\n network: 'Any',\n key: address,\n },\n },\n ],\n },\n },\n },\n 'Unlimited',\n ];\n },\n }),\n }),\n X2: (): ExtrinsicConfigBuilder => ({\n build: ({ address, amount, asset, destination, source }) =>\n new ExtrinsicConfig({\n module: pallet,\n func: funcName,\n getArgs: (func) => {\n const version = getExtrinsicArgumentVersion(func, 1);\n\n return [\n {\n [version]: {\n id: {\n Concrete: {\n parents: 1,\n interior: {\n X2: [\n {\n Parachain: originParachainId,\n },\n {\n GeneralKey: asset,\n },\n ],\n },\n },\n },\n fun: {\n Fungible: amount,\n },\n },\n },\n {\n [version]: {\n parents: 1,\n interior: {\n X2: [\n {\n Parachain: destination.parachainId,\n },\n {\n AccountKey20: {\n network: 'Any',\n key: address,\n },\n },\n ],\n },\n },\n },\n getWeight(source.weight, func),\n ];\n },\n }),\n }),\n };\n },\n transferMultiCurrencies: (): ExtrinsicConfigBuilder => ({\n build: ({ address, amount, asset, destination, fee, feeAsset }) =>\n new ExtrinsicConfig({\n module: pallet,\n func: 'transferMulticurrencies',\n getArgs: () => [\n [\n [asset, amount],\n [feeAsset, fee],\n ],\n 1,\n {\n [XcmVersion.v3]: {\n parents: 1,\n interior: {\n X2: [\n {\n Parachain: destination.parachainId,\n },\n {\n AccountKey20: {\n key: address,\n },\n },\n ],\n },\n },\n },\n 'Unlimited',\n ],\n }),\n }),\n };\n}\n","/* eslint-disable sort-keys */\nimport { ExtrinsicConfigBuilder } from '../../ExtrinsicBuilder.interfaces';\nimport { ExtrinsicConfig } from '../../ExtrinsicConfig';\n\nconst pallet = 'xTransfer';\n\nexport function xTransfer() {\n return {\n transfer: () => {\n const method = 'transfer';\n\n return {\n here: (): ExtrinsicConfigBuilder => ({\n build: ({ address, amount, destination }) =>\n new ExtrinsicConfig({\n module: pallet,\n func: method,\n getArgs: () => [\n {\n id: {\n Concrete: {\n parents: 0,\n interior: 'Here',\n },\n },\n fun: {\n Fungible: amount,\n },\n },\n {\n parents: 1,\n interior: {\n X2: [\n {\n Parachain: destination.parachainId,\n },\n {\n AccountKey20: {\n key: address,\n },\n },\n ],\n },\n },\n {\n refTime: 5_000_000_000,\n proofSize: 0,\n },\n ],\n }),\n }),\n X2: (): ExtrinsicConfigBuilder => ({\n build: ({ address, amount, destination, palletInstance }) =>\n new ExtrinsicConfig({\n module: pallet,\n func: method,\n getArgs: () => [\n {\n id: {\n Concrete: {\n parents: 1,\n interior: {\n X2: [\n {\n Parachain: destination.parachainId,\n },\n {\n PalletInstance: palletInstance,\n },\n ],\n },\n },\n },\n fun: {\n Fungible: amount || 1n,\n },\n },\n {\n parents: 1,\n interior: {\n X2: [\n {\n Parachain: destination.parachainId,\n },\n {\n AccountKey20: {\n key: address,\n },\n },\n ],\n },\n },\n {\n refTime: 5_000_000_000,\n proofSize: 0,\n },\n ],\n }),\n }),\n };\n },\n };\n}\n","/* eslint-disable sort-keys */\nimport {\n ExtrinsicConfigBuilder,\n Parents,\n} from '../../ExtrinsicBuilder.interfaces';\nimport { ExtrinsicConfig } from '../../ExtrinsicConfig';\nimport { getPolkadotXcmExtrinsicArgs } from '../polkadotXcm/polkadotXcm.util';\n\nconst pallet = 'xcmPallet';\n\nexport function xcmPallet() {\n return {\n limitedReserveTransferAssets: (parents: Parents = 1) => {\n const func = 'limitedReserveTransferAssets';\n\n return {\n here: (): ExtrinsicConfigBuilder => ({\n build: (params) =>\n new ExtrinsicConfig({\n module: pallet,\n func,\n getArgs: (extrinsicFunction) =>\n getPolkadotXcmExtrinsicArgs({\n ...params,\n parents,\n func: extrinsicFunction,\n asset: [\n {\n id: {\n Concrete: {\n parents: 0,\n interior: 'Here',\n },\n },\n fun: {\n Fungible: params.amount,\n },\n },\n ],\n }),\n }),\n }),\n };\n },\n };\n}\n","/* eslint-disable sort-keys */\n/* eslint-disable @typescript-eslint/no-use-before-define */\n\nimport { eqBalances } from './pallets/eqBalances';\nimport { polkadotXcm } from './pallets/polkadotXcm';\nimport { xTokens } from './pallets/xTokens';\nimport { xTransfer } from './pallets/xTransfer';\nimport { xcmPallet } from './pallets/xcmPallet';\n\nexport function ExtrinsicBuilder() {\n return {\n eqBalances,\n xTokens,\n xTransfer,\n polkadotXcm,\n xcmPallet,\n };\n}\n","import { ApiPromise } from '@polkadot/api';\nimport { CallType } from '../../builder.interfaces';\n\nexport interface SubstrateCallConfigConstructorParams {\n api: ApiPromise;\n call: () => Promise<bigint>;\n}\n\nexport class SubstrateCallConfig {\n readonly api: ApiPromise;\n\n readonly call: () => Promise<any>;\n\n readonly type = CallType.Substrate;\n\n constructor({ api, call }: SubstrateCallConfigConstructorParams) {\n this.api = api;\n this.call = call;\n }\n}\n","/* eslint-disable sort-keys */\n/* eslint-disable @typescript-eslint/no-use-before-define */\n\nimport { Option, u128 } from '@polkadot/types';\nimport { SubstrateCallConfig } from '../types/substrate/SubstrateCallConfig';\nimport { FeeConfigBuilder } from './FeeBuilder.interfaces';\n\nexport function FeeBuilder() {\n return {\n assetManager,\n };\n}\n\nfunction assetManager() {\n return {\n assetTypeUnitsPerSecond: (weight = 1_000_000_000): FeeConfigBuilder => ({\n build: ({ api, asset }) =>\n new SubstrateCallConfig({\n api,\n call: async (): Promise<bigint> => {\n const type = (await api.query.assetManager.assetIdType(\n asset,\n )) as unknown as Option<any>;\n\n if (type.isNone) {\n throw new Error(`No asset type found for asset ${asset}`);\n }\n\n const unwrappedType = type.unwrap();\n\n const res = (await api.query.assetManager.assetTypeUnitsPerSecond(\n unwrappedType,\n )) as unknown as Option<u128>;\n\n const unitsPerSecond = res.unwrapOrDefault().toBigInt();\n\n return (BigInt(weight) * unitsPerSecond) / BigInt(10 ** 12);\n },\n }),\n }),\n };\n}\n"],"mappings":"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CjDA,IAAMO,EAAS,cAER,SAASC,GAAc,CAC5B,MAAO,CACL,6BAA8B,IAAM,CAClC,IAAMC,EAAO,+BAEb,MAAO,CACL,KAAM,KAA+B,CACnC,MAAQC,GACN,IAAIC,EAAgB,CAClB,OAAQJ,EACR,KAAAE,EACA,QAAUG,GACRC,EAA4B,CAC1B,GAAGH,EACH,KAAME,EACN,MAAO,CACL,CACE,GAAI,CACF,SAAU,CACR,QAAS,EACT,SAAU,MACZ,CACF,EACA,IAAK,CACH,SAAUF,EAAO,MACnB,CACF,CACF,CACF,CAAC,CACL,CAAC,CACL,GACA,GAAI,KAA+B,CACjC,MAAQA,GACN,IAAIC,EAAgB,CAClB,OAAQJ,EACR,KAAAE,EACA,QAAUG,GACRC,EAA4B,CAC1B,GAAGH,EACH,KAAME,EACN,MAAO,CACL,CACE,GAAI,CACF,SAAU,CACR,QAAS,EACT,SAAU,CACR,GAAI,CACF,eAAgB,CAClB,CACF,CACF,CACF,EACA,IAAK,CACH,SAAUF,EAAO,MACnB,CACF,CACF,CACF,CAAC,CACL,CAAC,CACL,GACA,GAAI,KAA+B,CACjC,MAAQA,GACN,IAAIC,EAAgB,CAClB,OAAQJ,EACR,KAAAE,EACA,QAAUG,GACRC,EAA4B,CAC1B,GAAGH,EACH,KAAME,EACN,MAAO,CACL,CACE,GAAI,CACF,SAAU,CACR,QAAS,EACT,SAAU,CACR,GAAI,CACF,CACE,eAAgBF,EAAO,cACzB,EACA,CACE,aAAcA,EAAO,KACvB,CACF,CACF,CACF,CACF,EACA,IAAK,CACH,SAAUA,EAAO,MACnB,CACF,CACF,CACF,CAAC,CACL,CAAC,CACL,EACF,CACF,EACA,6BAA8B,IAAM,CAClC,IAAMD,EAAO,+BAEb,MAAO,CACL,GAAI,KAA+B,CACjC,MAAQC,GACN,IAAIC,EAAgB,CAClB,OAAQJ,EACR,KAAAE,EACA,QAAUG,GACRC,EAA4B,CAC1B,GAAGH,EACH,KAAME,EACN,MAAO,CACL,CACE,GAAI,CACF,SAAU,CACR,QAAS,EACT,SAAU,CACR,GAAI,CACF,CACE,UAAWF,EAAO,YAAY,WAChC,E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AO,CACL,KAAM,KAA+B,CACnC,MAAO,CAAC,CAAE,QAAAC,EAAS,OAAAC,EAAQ,YAAAC,CAAY,IACrC,IAAIC,EAAgB,CAClB,OAAQN,EACR,KAAME,EACN,QAAS,IAAM,CACb,CACE,GAAI,CACF,SAAU,CACR,QAAS,EACT,SAAU,MACZ,CACF,EACA,IAAK,CACH,SAAUE,CACZ,CACF,EACA,CACE,QAAS,EACT,SAAU,CACR,GAAI,CACF,CACE,UAAWC,EAAY,WACzB,EACA,CACE,aAAc,CACZ,IAAKF,CACP,CACF,CACF,CACF,CACF,EACA,CACE,QAAS,IACT,UAAW,CACb,CACF,CACF,CAAC,CACL,GACA,GAAI,KAA+B,CACjC,MAAO,CAAC,CAAE,QAAAA,EAAS,OAAAC,EAAQ,YAAAC,EAAa,eAAAE,CAAe,IACrD,IAAID,EAAgB,CAClB,OAAQN,EACR,KAAME,EACN,QAAS,IAAM,CACb,CACE,GAAI,CACF,SAAU,CACR,QAAS,EACT,SAAU,CACR,GAAI,CACF,CACE,UAAWG,EAAY,WACzB,EACA,CACE,eAAgBE,CAClB,CACF,CACF,CACF,CACF,EACA,IAAK,CACH,SAAUH,GAAU,EACtB,CACF,EACA,CACE,QAAS,EACT,SAAU,CACR,GAAI,CACF,CACE,UAAWC,EAAY,WACzB,EACA,CACE,aAAc,CACZ,IAAKF,CACP,CACF,CACF,CACF,CACF,EACA,CACE,QAAS,IACT,UAAW,CACb,CACF,CACF,CAAC,CACL,EACF,CACF,CACF,CACF,CC9FA,IAAMK,EAAS,YAER,SAASC,GAAY,CAC1B,MAAO,CACL,6BAA8B,CAACC,EAAmB,IAAM,CACtD,IAAMC,EAAO,+BAEb,MAAO,CACL,KAAM,KAA+B,CACnC,MAAQC,GACN,IAAIC,EAAgB,CAClB,OAAQL,EACR,KAAAG,EACA,QAAUG,GACRC,EAA4B,CAC1B,GAAGH,EACH,QAAAF,EACA,KAAMI,EACN,MAAO,CACL,CACE,GAAI,CACF,SAAU,CACR,QAAS,EACT,SAAU,MACZ,CACF,EACA,IAAK,CACH,SAAUF,EAAO,MACnB,CACF,CACF,CACF,CAAC,CACL,CAAC,CACL,EACF,CACF,CACF,CACF,CCpCO,SAASI,IAAmB,CACjC,MAAO,CACL,WAAAC,EACA,QAAAC,EACA,UAAAC,EACA,YAAAC,EACA,UAAAC,CACF,CACF,CCTO,IAAMC,EAAN,KAA0B,CACtB,IAEA,KAEA,iBAET,YAAY,CAAE,IAAAC,EAAK,KAAAC,CAAK,EAAyC,CAC/D,KAAK,IAAMD,EACX,KAAK,KAAOC,CACd,CACF,ECZO,SAASC,IAAa,CAC3B,MAAO,CACL,aAAAC,EACF,CACF,CAEA,SAASA,IAAe,CACtB,MAAO,CACL,wBAAyB,CAACC,EAAS,OAAqC,CACtE,MAAO,CAAC,CAAE,IAAAC,EAAK,MAAAC,CAAM,IACnB,IAAIC,EAAoB,CACtB,IAAAF,EACA,KAAM,SAA6B,CACjC,IAAMG,EAAQ,MAAMH,EAAI,MAAM,aAAa,YACzCC,CACF,EAEA,GAAIE,EAAK,OACP,MAAM,IAAI,MAAM,iCAAiCF,GAAO,EAG1D,IAAMG,EAAgBD,EAAK,OAAO,EAM5BE,GAJO,MAAML,EAAI,MAAM,aAAa,wBACxCI,CACF,GAE2B,gBAAgB,EAAE,SAAS,EAEtD,OAAQ,OAAOL,CAAM,EAAIM,EAAkB,OAAO,IAAM,EAAE,CAC5D,CACF,CAAC,CACL,EACF,CACF","names":["src_exports","__export","AssetMinBuilder","BalanceBuilder","BaseConfig","CallType","ContractBuilder","ContractConfig","ExtrinsicBuilder","ExtrinsicConfig","FeeBuilder","SubstrateQueryConfig","XcmVersion","evm","substrate","__toCommonJS","import_api_augment","CallType","BaseConfig","module","func","type","SubstrateQueryConfig","BaseConfig","args","transform","type","other","AssetMinBuilder","assetRegistry","assets","pallet","asset","SubstrateQueryConfig","response","import_util","import_xcm_utils","import_util","import_util_crypto","ContractConfig","BaseConfig","args","address","other","Xtokens","weight","address","amount","asset","destination","ContractConfig","getDestinationMultilocation","fee","feeAsset","acc","ContractBuilder","Xtokens","BalanceBuilder","evm","substrate","erc20","assets","system","tokens","address","asset","ContractConfig","SubstrateQueryConfig","response","balance","frozen","_a","res","balances","assetId","free","ExtrinsicConfig","BaseConfig","getArgs","other","pallet","eqBalances","address","amount","asset","destination","ExtrinsicConfig","fee","feeAsset","amountWithoutFee","import_types","XcmVersion","getExtrinsicArgumentVersion","func","index","type","instance","raw","versions","x","getPolkadotXcmExtrinsicArgs","asset","address","destination","func","parents","version","getExtrinsicArgumentVersion","pallet","polkadotXcm","func","params","ExtrinsicConfig","extrinsicFunction","getPolkadotXcmExtrinsicArgs","getWeight","weight","func","_a","type","pallet","xTokens","address","amount","asset","destination","source","ExtrinsicConfig","func","version","getExtrinsicArgumentVersion","getWeight","originParachainId","funcName","fee","feeAsset","pallet","xTransfer","method","address","amount","destination","ExtrinsicConfig","palletInstance","pallet","xcmPallet","parents","func","params","ExtrinsicConfig","extrinsicFunction","getPolkadotXcmExtrinsicArgs","ExtrinsicBuilder","eqBalances","xTokens","xTransfer","polkadotXcm","xcmPallet","SubstrateCallConfig","api","call","FeeBuilder","assetManager","weight","api","asset","SubstrateCallConfig","type","unwrappedType","unitsPerSecond"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/builder.interfaces.ts","../src/types/BaseConfig.ts","../src/types/substrate/SubstrateQueryConfig.ts","../src/asset-min/AssetMinBuilder.ts","../src/balance/BalanceBuilder.ts","../src/contract/contracts/Xtokens/Xtokens.ts","../src/contract/ContractConfig.ts","../src/contract/ContractBuilder.ts","../src/extrinsic/ExtrinsicBuilder.utils.ts","../src/extrinsic/ExtrinsicBuilder.interfaces.ts","../src/extrinsic/ExtrinsicConfig.ts","../src/extrinsic/pallets/eqBalances/eqBalances.ts","../src/extrinsic/pallets/polkadotXcm/polkadotXcm.util.ts","../src/extrinsic/pallets/polkadotXcm/polkadotXcm.ts","../src/extrinsic/pallets/xTokens/xTokens.utils.ts","../src/extrinsic/pallets/xTokens/xTokens.ts","../src/extrinsic/pallets/xTransfer/xTransfer.ts","../src/extrinsic/pallets/xcmPallet/xcmPallet.ts","../src/extrinsic/ExtrinsicBuilder.ts","../src/types/substrate/SubstrateCallConfig.ts","../src/fee/FeeBuilder.ts"],"sourcesContent":["import '@polkadot/api-augment';\n\nexport * from './asset-min';\nexport * from './balance';\nexport * from './builder.interfaces';\nexport * from './contract';\nexport * from './extrinsic';\nexport * from './fee';\nexport * from './types/BaseConfig';\nexport * from './types/substrate/SubstrateQueryConfig';\n","export enum CallType {\n Evm = 'Evm',\n Substrate = 'Substrate',\n}\n","import { CallType } from '../builder.interfaces';\n\nexport interface BaseConfigConstructorParams {\n module: string;\n func: string;\n type: CallType;\n}\n\nexport class BaseConfig {\n readonly module: string;\n\n readonly func: string;\n\n readonly type: CallType;\n\n constructor({ module, func, type }: BaseConfigConstructorParams) {\n this.module = module;\n this.func = func;\n this.type = type;\n }\n}\n","import { SetOptional } from '@moonbeam-network/xcm-types';\nimport { CallType } from '../../builder.interfaces';\nimport { BaseConfig, BaseConfigConstructorParams } from '../BaseConfig';\n\nexport interface QueryConfigConstructorParams\n extends SetOptional<BaseConfigConstructorParams, 'type'> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n args?: any[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n transform: (data: any) => Promise<bigint>;\n}\n\nexport class SubstrateQueryConfig extends BaseConfig {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n readonly args: any[];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n readonly transform: (data: any) => Promise<bigint>;\n\n constructor({\n args = [],\n transform,\n type = CallType.Substrate,\n ...other\n }: QueryConfigConstructorParams) {\n super({ ...other, type });\n\n this.args = args;\n this.transform = transform;\n }\n}\n","/* eslint-disable sort-keys */\n/* eslint-disable @typescript-eslint/no-use-before-define */\n\nimport { Option } from '@polkadot/types';\nimport { PalletAssetsAssetDetails } from '@polkadot/types/lookup';\nimport { SubstrateQueryConfig } from '../types/substrate/SubstrateQueryConfig';\nimport { AssetMinConfigBuilder } from './AssetMinBuilder.interfaces';\n\nexport function AssetMinBuilder() {\n return {\n assetRegistry,\n assets,\n };\n}\n\nfunction assetRegistry() {\n const pallet = 'assetRegistry';\n return {\n assetMetadatas: (): AssetMinConfigBuilder => ({\n build: ({ asset }) =>\n new SubstrateQueryConfig({\n module: pallet,\n func: 'assetMetadatas',\n args: [asset],\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n transform: async (response: Option<any>): Promise<bigint> =>\n response.unwrapOrDefault().minimalBalance.toBigInt(),\n }),\n }),\n currencyMetadatas: (): AssetMinConfigBuilder => ({\n build: ({ asset }) =>\n new SubstrateQueryConfig({\n module: pallet,\n func: 'currencyMetadatas',\n args: [asset],\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n transform: async (response: Option<any>): Promise<bigint> =>\n response.unwrapOrDefault().minimalBalance.toBigInt(),\n }),\n }),\n };\n}\n\nfunction assets() {\n return {\n asset: (): AssetMinConfigBuilder => ({\n build: ({ asset }) =>\n new SubstrateQueryConfig({\n module: 'assets',\n func: 'asset',\n args: [asset],\n transform: async (\n response: Option<PalletAssetsAssetDetails>,\n ): Promise<bigint> =>\n response.unwrapOrDefault().minBalance.toBigInt(),\n }),\n }),\n };\n}\n","/* eslint-disable sort-keys */\n/* eslint-disable @typescript-eslint/no-use-before-define */\n\nimport { Option } from '@polkadot/types';\nimport {\n FrameSystemAccountInfo,\n PalletAssetsAssetAccount,\n PalletBalancesAccountData,\n} from '@polkadot/types/lookup';\nimport { isString } from '@polkadot/util';\nimport { evmToAddress } from '@polkadot/util-crypto';\nimport { ContractConfig } from '../contract';\nimport { SubstrateQueryConfig } from '../types/substrate/SubstrateQueryConfig';\nimport {\n BalanceConfigBuilder,\n EquilibriumSystemBalanceData,\n PalletBalancesAccountDataOld,\n TokensPalletAccountData,\n} from './BalanceBuilder.interfaces';\n\nexport function BalanceBuilder() {\n return {\n evm,\n substrate,\n };\n}\n\nexport function evm() {\n return {\n erc20,\n };\n}\n\nexport function substrate() {\n return {\n assets,\n system,\n tokens,\n };\n}\n\nfunction erc20(): BalanceConfigBuilder {\n return {\n build: ({ address, asset }) => {\n if (!asset || !isString(asset)) {\n throw new Error(`Invalid contract address: ${asset}`);\n }\n\n return new ContractConfig({\n address: asset,\n args: [address],\n func: 'balanceOf',\n module: 'Erc20',\n });\n },\n };\n}\n\nfunction assets() {\n return {\n account: (): BalanceConfigBuilder => ({\n build: ({ address, asset }) =>\n new SubstrateQueryConfig({\n module: 'assets',\n func: 'account',\n args: [asset, address],\n transform: async (\n response: Option<PalletAssetsAssetAccount>,\n ): Promise<bigint> => response.unwrapOrDefault().balance.toBigInt(),\n }),\n }),\n };\n}\n\nfunction system() {\n return {\n account: (): BalanceConfigBuilder => ({\n build: ({ address }) =>\n new SubstrateQueryConfig({\n module: 'system',\n func: 'account',\n args: [address],\n transform: async (\n response: FrameSystemAccountInfo,\n ): Promise<bigint> => {\n const balance = response.data as PalletBalancesAccountData &\n PalletBalancesAccountDataOld;\n const frozen = balance.miscFrozen ?? balance.frozen;\n\n return BigInt(balance.free.sub(frozen).toString());\n },\n }),\n }),\n accountEquilibrium: (): BalanceConfigBuilder => ({\n build: ({ address, asset }) =>\n new SubstrateQueryConfig({\n module: 'system',\n func: 'account',\n args: [address],\n transform: async (response): Promise<bigint> => {\n if (response.data.isEmpty) {\n return 0n;\n }\n\n const res = response.data.toJSON() as unknown;\n let balances: EquilibriumSystemBalanceData | undefined;\n\n if (Array.isArray(res)) {\n balances = res;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (Array.isArray((res as any)?.v0?.balance)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n balances = (res as any).v0.balance;\n }\n\n if (!balances) {\n throw new Error(\"Can't get balance from Equilibrium chain\");\n }\n\n const balance = balances.find(([assetId]) => assetId === asset);\n\n if (!balance) {\n return 0n;\n }\n\n return BigInt(balance[1].positive);\n },\n }),\n }),\n accountEvmTo32: (): BalanceConfigBuilder => ({\n build: ({ address }) => {\n const substrateAddress = evmToAddress(address);\n\n return new SubstrateQueryConfig({\n module: 'system',\n func: 'account',\n args: [substrateAddress],\n transform: async (\n response: FrameSystemAccountInfo,\n ): Promise<bigint> => {\n const balance = response.data as PalletBalancesAccountData &\n PalletBalancesAccountDataOld;\n const frozen = balance.miscFrozen ?? balance.frozen;\n\n return BigInt(balance.free.sub(frozen).toString());\n },\n });\n },\n }),\n };\n}\n\nfunction tokens() {\n return {\n accounts: (): BalanceConfigBuilder => ({\n build: ({ address, asset }) =>\n new SubstrateQueryConfig({\n module: 'tokens',\n func: 'accounts',\n args: [address, asset],\n transform: async ({\n free,\n frozen,\n }: TokensPalletAccountData): Promise<bigint> =>\n BigInt(free.sub(frozen).toString()),\n }),\n }),\n };\n}\n","/* eslint-disable @typescript-eslint/no-use-before-define */\nimport { AnyChain } from '@moonbeam-network/xcm-types';\nimport { formatAssetIdToERC20 } from '@moonbeam-network/xcm-utils';\nimport { isString, u8aToHex } from '@polkadot/util';\nimport { decodeAddress, evmToAddress } from '@polkadot/util-crypto';\nimport { ContractConfigBuilder } from '../../ContractBuilder.interfaces';\nimport { ContractConfig } from '../../ContractConfig';\n\nconst U_64_MAX = 18446744073709551615n;\n\nexport function Xtokens() {\n return {\n transfer: (weight = U_64_MAX): ContractConfigBuilder => ({\n build: ({ address, amount, asset, destination }) =>\n new ContractConfig({\n args: [\n isString(asset) ? formatAssetIdToERC20(asset) : asset,\n amount,\n getDestinationMultilocation(address, destination),\n weight,\n ],\n func: 'transfer',\n module: 'Xtokens',\n }),\n }),\n transferMultiCurrencies: (weight = U_64_MAX): ContractConfigBuilder => ({\n build: ({ address, amount, asset, destination, fee, feeAsset }) =>\n new ContractConfig({\n args: [\n [\n [isString(asset) ? formatAssetIdToERC20(asset) : asset, amount],\n [\n isString(feeAsset) ? formatAssetIdToERC20(feeAsset) : feeAsset,\n fee,\n ],\n ],\n 1, // index of the fee asset\n getDestinationMultilocation(address, destination),\n weight,\n ],\n func: 'transferMultiCurrencies',\n module: 'Xtokens',\n }),\n }),\n transferWithEvmTo32: (weight = U_64_MAX): ContractConfigBuilder => ({\n build: ({ address, amount, asset, destination }) => {\n const multilocation =\n getDestinationMultilocationForPrecompileDestination(\n address,\n destination,\n );\n\n return new ContractConfig({\n args: [\n isString(asset) ? formatAssetIdToERC20(asset) : asset,\n amount,\n multilocation,\n weight,\n ],\n func: 'transfer',\n module: 'Xtokens',\n });\n },\n }),\n };\n}\n\ntype DestinationMultilocation = [\n /**\n * 1 - if transaction is going through a relay chain\n */\n 1,\n (\n | [\n /**\n * example '0x00000007DC'\n * 7DC - parachain id in hex\n * can be found here:\n * - https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fkusama-rpc.polkadot.io#/parachains\n * - https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frpc.polkadot.io#/parachains\n */\n string,\n /**\n * example '0x01%account%00',\n * enum = 01 (AccountId32)\n * networkId = 00 (any)\n */\n string,\n ]\n | [\n /**\n * example '0x01%account%00',\n * enum = 01 (AccountId32)\n * networkId = 00 (any)\n */\n string,\n ]\n ),\n];\n\nfunction getDestinationMultilocationForPrecompileDestination(\n address: string,\n destination: AnyChain,\n): DestinationMultilocation {\n /* \n 01: AccountId32\n 03: AccountKey20\n https://docs.moonbeam.network/builders/interoperability/xcm/xc20/xtokens/#building-the-precompile-multilocation\n */\n const accountType = '01';\n const substrateAddress = evmToAddress(address);\n const acc = `0x${accountType}${u8aToHex(\n decodeAddress(substrateAddress),\n -1,\n false,\n )}00`;\n\n return [\n 1,\n destination.parachainId\n ? [`0x0000000${destination.parachainId.toString(16)}`, acc]\n : [acc],\n ];\n}\n\nfunction getDestinationMultilocation(\n address: string,\n destination: AnyChain,\n): DestinationMultilocation {\n /* \n 01: AccountId32\n 03: AccountKey20\n https://docs.moonbeam.network/builders/interoperability/xcm/xc20/xtokens/#building-the-precompile-multilocation\n */\n const accountType = destination.isEvmParachain() ? '03' : '01';\n const acc = `0x${accountType}${u8aToHex(\n decodeAddress(address),\n -1,\n false,\n )}00`;\n\n return [\n 1,\n destination.parachainId\n ? [`0x0000000${destination.parachainId.toString(16)}`, acc]\n : [acc],\n ];\n}\n","import { CallType } from '../builder.interfaces';\nimport { BaseConfig, BaseConfigConstructorParams } from '../types/BaseConfig';\n\nexport interface ContractConfigConstructorParams\n extends Omit<BaseConfigConstructorParams, 'type'> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n args: any[];\n address?: string;\n}\n\nexport class ContractConfig extends BaseConfig {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n readonly args: any[];\n\n readonly address?: string;\n\n constructor({ args, address, ...other }: ContractConfigConstructorParams) {\n super({ ...other, type: CallType.Evm });\n\n this.args = args;\n this.address = address;\n }\n}\n","import { Xtokens } from './contracts/Xtokens';\n\nexport function ContractBuilder() {\n return {\n Xtokens,\n };\n}\n","import { SubmittableExtrinsicFunction } from '@polkadot/api/types';\nimport { getTypeDef } from '@polkadot/types';\nimport { u8aToHex } from '@polkadot/util';\nimport { decodeAddress } from '@polkadot/util-crypto';\nimport { XcmVersion } from './ExtrinsicBuilder.interfaces';\n\nexport function getExtrinsicArgumentVersion(\n func?: SubmittableExtrinsicFunction<'promise'>,\n index: number = 0,\n): XcmVersion {\n if (!func) return XcmVersion.v1;\n\n const { type } = func.meta.args[index];\n const instance = func.meta.registry.createType(type.toString());\n const raw = getTypeDef(instance?.toRawType());\n\n if (!raw.sub) {\n return XcmVersion.v1;\n }\n\n const versions = Array.isArray(raw.sub)\n ? raw.sub.map((x) => x.name)\n : [raw.sub.name];\n\n if (versions.includes(XcmVersion.v1)) {\n return XcmVersion.v1;\n }\n\n if (versions.includes(XcmVersion.v2)) {\n return XcmVersion.v2;\n }\n\n if (versions.includes(XcmVersion.v3)) {\n return XcmVersion.v3;\n }\n\n throw new Error(\"Can't find Xcm version\");\n}\n\nexport function getExtrinsicAccount(address: string) {\n const isEthAddress = address.length === 42 && address.startsWith('0x');\n\n return isEthAddress\n ? {\n AccountKey20: {\n key: address,\n },\n }\n : {\n AccountId32: {\n id: u8aToHex(decodeAddress(address)),\n network: null,\n },\n };\n}\n","import { AnyChain, ChainAssetId } from '@moonbeam-network/xcm-types';\nimport { ExtrinsicConfig } from './ExtrinsicConfig';\n\nexport interface ExtrinsicConfigBuilder {\n build: (params: ExtrinsicConfigBuilderPrams) => ExtrinsicConfig;\n}\n\nexport interface ExtrinsicConfigBuilderPrams {\n address: string;\n amount: bigint;\n asset: ChainAssetId;\n destination: AnyChain;\n fee: bigint;\n feeAsset: ChainAssetId;\n palletInstance?: number;\n source: AnyChain;\n}\n\nexport enum XcmVersion {\n v1 = 'V1',\n v2 = 'V2',\n v3 = 'V3',\n}\n\nexport type Parents = 0 | 1;\n","import { SubmittableExtrinsicFunction } from '@polkadot/api/types';\nimport { CallType } from '../builder.interfaces';\nimport { BaseConfig, BaseConfigConstructorParams } from '../types/BaseConfig';\n\nexport interface ExtrinsicConfigConstructorParams\n extends Omit<BaseConfigConstructorParams, 'type'> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n getArgs: (func?: SubmittableExtrinsicFunction<'promise'>) => any[];\n}\n\nexport class ExtrinsicConfig extends BaseConfig {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n getArgs: (func?: SubmittableExtrinsicFunction<'promise'>) => any[];\n\n constructor({ getArgs, ...other }: ExtrinsicConfigConstructorParams) {\n super({ ...other, type: CallType.Substrate });\n\n this.getArgs = getArgs;\n }\n}\n","/* eslint-disable sort-keys */\nimport { ExtrinsicConfigBuilder } from '../../ExtrinsicBuilder.interfaces';\nimport { getExtrinsicAccount } from '../../ExtrinsicBuilder.utils';\nimport { ExtrinsicConfig } from '../../ExtrinsicConfig';\n\nexport enum EqBalancesFee {\n SovereignAccWillPay = 'SovereignAccWillPay',\n TargetChainAccWillPay = 'TargetChainAccWillPay',\n ThisAccWillPay = 'ThisAccWillPay',\n}\n\nconst pallet = 'eqBalances';\n\nexport function eqBalances() {\n return {\n xcmTransfer: (): ExtrinsicConfigBuilder => ({\n build: ({ address, amount, asset, destination }) =>\n new ExtrinsicConfig({\n module: pallet,\n func: 'xcmTransfer',\n getArgs: () => [\n asset,\n amount,\n {\n parents: 1,\n interior: {\n X2: [\n {\n Parachain: destination.parachainId,\n },\n getExtrinsicAccount(address),\n ],\n },\n },\n EqBalancesFee.ThisAccWillPay,\n ],\n }),\n }),\n transferXcm: (): ExtrinsicConfigBuilder => ({\n build: ({ address, amount, asset, destination, fee, feeAsset }) =>\n new ExtrinsicConfig({\n module: pallet,\n func: 'transferXcm',\n getArgs: () => {\n const amountWithoutFee = amount - fee > 0n ? amount - fee : 0n;\n\n return [\n [asset, asset === feeAsset ? amountWithoutFee : amount],\n [feeAsset, fee],\n {\n parents: 1,\n interior: {\n X2: [\n {\n Parachain: destination.parachainId,\n },\n getExtrinsicAccount(address),\n ],\n },\n },\n ];\n },\n }),\n }),\n };\n}\n","/* eslint-disable sort-keys */\nimport { SubmittableExtrinsicFunction } from '@polkadot/api/types';\nimport {\n ExtrinsicConfigBuilderPrams,\n Parents,\n} from '../../ExtrinsicBuilder.interfaces';\nimport {\n getExtrinsicAccount,\n getExtrinsicArgumentVersion,\n} from '../../ExtrinsicBuilder.utils';\n\nexport interface GetExtrinsicParams extends ExtrinsicConfigBuilderPrams {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n asset: any;\n func?: SubmittableExtrinsicFunction<'promise'>;\n parents?: Parents;\n feeIndex?: number;\n}\n\nexport function getPolkadotXcmExtrinsicArgs({\n asset,\n address,\n destination,\n func,\n parents = 1,\n feeIndex = 0,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n}: GetExtrinsicParams): any[] {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n const version = getExtrinsicArgumentVersion(func);\n\n return [\n {\n [version]: {\n parents,\n interior: {\n X1: {\n Parachain: destination.parachainId,\n },\n },\n },\n },\n {\n [version]: {\n parents: 0,\n interior: {\n X1: getExtrinsicAccount(address),\n },\n },\n },\n {\n [version]: asset,\n },\n feeIndex,\n 'Unlimited',\n ];\n}\n","/* eslint-disable sort-keys */\nimport { ExtrinsicConfigBuilder } from '../../ExtrinsicBuilder.interfaces';\nimport { ExtrinsicConfig } from '../../ExtrinsicConfig';\nimport { getPolkadotXcmExtrinsicArgs } from './polkadotXcm.util';\n\nconst pallet = 'polkadotXcm';\n\nexport function polkadotXcm() {\n return {\n limitedReserveTransferAssets: () => {\n const func = 'limitedReserveTransferAssets';\n\n return {\n here: (): ExtrinsicConfigBuilder => ({\n build: (params) =>\n new ExtrinsicConfig({\n module: pallet,\n func,\n getArgs: (extrinsicFunction) =>\n getPolkadotXcmExtrinsicArgs({\n ...params,\n func: extrinsicFunction,\n asset: [\n {\n id: {\n Concrete: {\n parents: 0,\n interior: 'Here',\n },\n },\n fun: {\n Fungible: params.amount,\n },\n },\n ],\n }),\n }),\n }),\n X1: (): ExtrinsicConfigBuilder => ({\n build: (params) =>\n new ExtrinsicConfig({\n module: pallet,\n func,\n getArgs: (extrinsicFunction) =>\n getPolkadotXcmExtrinsicArgs({\n ...params,\n func: extrinsicFunction,\n asset: [\n {\n id: {\n Concrete: {\n parents: 0,\n interior: {\n X1: {\n PalletInstance: params.palletInstance,\n },\n },\n },\n },\n fun: {\n Fungible: params.amount,\n },\n },\n ],\n }),\n }),\n }),\n X2: (): ExtrinsicConfigBuilder => ({\n build: (params) =>\n new ExtrinsicConfig({\n module: pallet,\n func,\n getArgs: (extrinsicFunction) => {\n const isAssetDifferent =\n !!params.feeAsset && params.asset !== params.feeAsset;\n const asset = [\n {\n id: {\n Concrete: {\n parents: 0,\n interior: {\n X2: [\n {\n PalletInstance: params.palletInstance,\n },\n {\n GeneralIndex: params.asset,\n },\n ],\n },\n },\n },\n fun: {\n Fungible: params.amount,\n },\n },\n ];\n\n if (isAssetDifferent) {\n asset.push({\n id: {\n Concrete: {\n parents: 0,\n interior: {\n X2: [\n {\n PalletInstance: params.palletInstance,\n },\n {\n GeneralIndex: params.feeAsset,\n },\n ],\n },\n },\n },\n fun: {\n Fungible: params.fee,\n },\n });\n }\n\n return getPolkadotXcmExtrinsicArgs({\n ...params,\n func: extrinsicFunction,\n asset,\n feeIndex: isAssetDifferent ? 1 : 0,\n });\n },\n }),\n }),\n };\n },\n limitedReserveWithdrawAssets: () => {\n const func = 'limitedReserveWithdrawAssets';\n\n return {\n X2: (): ExtrinsicConfigBuilder => ({\n build: (params) =>\n new ExtrinsicConfig({\n module: pallet,\n func,\n getArgs: (extrinsicFunction) =>\n getPolkadotXcmExtrinsicArgs({\n ...params,\n func: extrinsicFunction,\n asset: [\n {\n id: {\n Concrete: {\n parents: 1,\n interior: {\n X2: [\n {\n Parachain: params.destination.parachainId,\n },\n {\n PalletInstance: params.palletInstance,\n },\n ],\n },\n },\n },\n fun: {\n Fungible: params.amount,\n },\n },\n ],\n }),\n }),\n }),\n };\n },\n };\n}\n","import { AnyChain } from '@moonbeam-network/xcm-types';\nimport { XcmVersion } from '../../ExtrinsicBuilder.interfaces';\nimport { getExtrinsicAccount } from '../../ExtrinsicBuilder.utils';\nimport { XTokensWeightLimit } from './xTokens.interfaces';\n\n/**\n * It is safer to always use unlimited\n */\nexport function getWeight(): XTokensWeightLimit {\n return 'Unlimited';\n}\n\nexport function getDestination(\n version: XcmVersion,\n address: string,\n destination: AnyChain,\n) {\n return {\n [version]: {\n parents: 1,\n // eslint-disable-next-line sort-keys\n interior: {\n X2: [\n {\n Parachain: destination.parachainId,\n },\n getExtrinsicAccount(address),\n ],\n },\n },\n };\n}\n","/* eslint-disable sort-keys */\nimport {\n ExtrinsicConfigBuilder,\n XcmVersion,\n} from '../../ExtrinsicBuilder.interfaces';\nimport { getExtrinsicArgumentVersion } from '../../ExtrinsicBuilder.utils';\nimport { ExtrinsicConfig } from '../../ExtrinsicConfig';\nimport { getDestination, getWeight } from './xTokens.utils';\n\nconst pallet = 'xTokens';\n\nexport function xTokens() {\n return {\n transfer: (): ExtrinsicConfigBuilder => ({\n build: ({ address, amount, asset, destination }) =>\n new ExtrinsicConfig({\n module: pallet,\n func: 'transfer',\n getArgs: (func) => {\n const version = getExtrinsicArgumentVersion(func, 2);\n\n return [\n asset,\n amount,\n getDestination(version, address, destination),\n getWeight(),\n ];\n },\n }),\n }),\n transferMultiAsset: (originParachainId: number) => {\n const funcName = 'transferMultiasset';\n\n return {\n here: (): ExtrinsicConfigBuilder => ({\n build: ({ address, amount, destination }) =>\n new ExtrinsicConfig({\n module: pallet,\n func: funcName,\n getArgs: (func) => {\n const version = getExtrinsicArgumentVersion(func, 1);\n\n return [\n {\n [version]: {\n id: {\n Concrete: {\n parents: 0,\n interior: 'Here',\n },\n },\n fun: {\n Fungible: amount,\n },\n },\n },\n getDestination(version, address, destination),\n getWeight(),\n ];\n },\n }),\n }),\n X1: (): ExtrinsicConfigBuilder => ({\n build: ({ address, amount, destination }) =>\n new ExtrinsicConfig({\n module: pallet,\n func: funcName,\n getArgs: (func) => {\n const version = getExtrinsicArgumentVersion(func, 1);\n\n return [\n {\n [version]: {\n id: {\n Concrete: {\n parents: 1,\n interior: {\n X1: {\n Parachain: originParachainId,\n },\n },\n },\n },\n fun: {\n Fungible: amount,\n },\n },\n },\n getDestination(version, address, destination),\n getWeight(),\n ];\n },\n }),\n }),\n X2: (): ExtrinsicConfigBuilder => ({\n build: ({ address, amount, asset, destination }) =>\n new ExtrinsicConfig({\n module: pallet,\n func: funcName,\n getArgs: (func) => {\n const version = getExtrinsicArgumentVersion(func, 1);\n\n return [\n {\n [version]: {\n id: {\n Concrete: {\n parents: 1,\n interior: {\n X2: [\n {\n Parachain: originParachainId,\n },\n {\n GeneralKey: asset,\n },\n ],\n },\n },\n },\n fun: {\n Fungible: amount,\n },\n },\n },\n getDestination(version, address, destination),\n getWeight(),\n ];\n },\n }),\n }),\n };\n },\n transferMultiCurrencies: (): ExtrinsicConfigBuilder => ({\n build: ({ address, amount, asset, destination, fee, feeAsset }) =>\n new ExtrinsicConfig({\n module: pallet,\n func: 'transferMulticurrencies',\n getArgs: () => [\n [\n [asset, amount],\n [feeAsset, fee],\n ],\n 1,\n getDestination(XcmVersion.v3, address, destination),\n getWeight(),\n ],\n }),\n }),\n };\n}\n","/* eslint-disable sort-keys */\nimport { ExtrinsicConfigBuilder } from '../../ExtrinsicBuilder.interfaces';\nimport { getExtrinsicAccount } from '../../ExtrinsicBuilder.utils';\nimport { ExtrinsicConfig } from '../../ExtrinsicConfig';\n\nconst pallet = 'xTransfer';\n\nexport function xTransfer() {\n return {\n transfer: () => {\n const method = 'transfer';\n\n return {\n here: (): ExtrinsicConfigBuilder => ({\n build: ({ address, amount, destination }) =>\n new ExtrinsicConfig({\n module: pallet,\n func: method,\n getArgs: () => [\n {\n id: {\n Concrete: {\n parents: 0,\n interior: 'Here',\n },\n },\n fun: {\n Fungible: amount,\n },\n },\n {\n parents: 1,\n interior: {\n X2: [\n {\n Parachain: destination.parachainId,\n },\n getExtrinsicAccount(address),\n ],\n },\n },\n {\n refTime: 5_000_000_000,\n proofSize: 0,\n },\n ],\n }),\n }),\n X2: (): ExtrinsicConfigBuilder => ({\n build: ({ address, amount, destination, palletInstance }) =>\n new ExtrinsicConfig({\n module: pallet,\n func: method,\n getArgs: () => [\n {\n id: {\n Concrete: {\n parents: 1,\n interior: {\n X2: [\n {\n Parachain: destination.parachainId,\n },\n {\n PalletInstance: palletInstance,\n },\n ],\n },\n },\n },\n fun: {\n Fungible: amount || 1n,\n },\n },\n {\n parents: 1,\n interior: {\n X2: [\n {\n Parachain: destination.parachainId,\n },\n getExtrinsicAccount(address),\n ],\n },\n },\n {\n refTime: 5_000_000_000,\n proofSize: 0,\n },\n ],\n }),\n }),\n };\n },\n };\n}\n","/* eslint-disable sort-keys */\nimport {\n ExtrinsicConfigBuilder,\n Parents,\n} from '../../ExtrinsicBuilder.interfaces';\nimport { ExtrinsicConfig } from '../../ExtrinsicConfig';\nimport { getPolkadotXcmExtrinsicArgs } from '../polkadotXcm/polkadotXcm.util';\n\nconst pallet = 'xcmPallet';\n\nexport function xcmPallet() {\n return {\n limitedReserveTransferAssets: (parents: Parents = 1) => {\n const func = 'limitedReserveTransferAssets';\n\n return {\n here: (): ExtrinsicConfigBuilder => ({\n build: (params) =>\n new ExtrinsicConfig({\n module: pallet,\n func,\n getArgs: (extrinsicFunction) =>\n getPolkadotXcmExtrinsicArgs({\n ...params,\n parents,\n func: extrinsicFunction,\n asset: [\n {\n id: {\n Concrete: {\n parents: 0,\n interior: 'Here',\n },\n },\n fun: {\n Fungible: params.amount,\n },\n },\n ],\n }),\n }),\n }),\n };\n },\n };\n}\n","/* eslint-disable sort-keys */\n/* eslint-disable @typescript-eslint/no-use-before-define */\n\nimport { eqBalances } from './pallets/eqBalances';\nimport { polkadotXcm } from './pallets/polkadotXcm';\nimport { xTokens } from './pallets/xTokens';\nimport { xTransfer } from './pallets/xTransfer';\nimport { xcmPallet } from './pallets/xcmPallet';\n\nexport function ExtrinsicBuilder() {\n return {\n eqBalances,\n xTokens,\n xTransfer,\n polkadotXcm,\n xcmPallet,\n };\n}\n","import { ApiPromise } from '@polkadot/api';\nimport { CallType } from '../../builder.interfaces';\n\nexport interface SubstrateCallConfigConstructorParams {\n api: ApiPromise;\n call: () => Promise<bigint>;\n}\n\nexport class SubstrateCallConfig {\n readonly api: ApiPromise;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n readonly call: () => Promise<any>;\n\n readonly type = CallType.Substrate;\n\n constructor({ api, call }: SubstrateCallConfigConstructorParams) {\n this.api = api;\n this.call = call;\n }\n}\n","/* eslint-disable sort-keys */\n/* eslint-disable @typescript-eslint/no-use-before-define */\n\nimport { Option, u128 } from '@polkadot/types';\nimport { SubstrateCallConfig } from '../types/substrate/SubstrateCallConfig';\nimport { FeeConfigBuilder } from './FeeBuilder.interfaces';\n\nexport function FeeBuilder() {\n return {\n assetManager,\n };\n}\n\nfunction assetManager() {\n return {\n assetTypeUnitsPerSecond: (weight = 1_000_000_000): FeeConfigBuilder => ({\n build: ({ api, asset }) =>\n new SubstrateCallConfig({\n api,\n call: async (): Promise<bigint> => {\n const type = (await api.query.assetManager.assetIdType(\n asset,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n )) as unknown as Option<any>;\n\n if (type.isNone) {\n throw new Error(`No asset type found for asset ${asset}`);\n }\n\n const unwrappedType = type.unwrap();\n\n const res = (await api.query.assetManager.assetTypeUnitsPerSecond(\n unwrappedType,\n )) as unknown as Option<u128>;\n\n const unitsPerSecond = res.unwrapOrDefault().toBigInt();\n\n return (BigInt(weight) * unitsPerSecond) / BigInt(10 ** 12);\n },\n }),\n }),\n };\n}\n"],"mappings":"yaAAA,IAAAA,GAAA,GAAAC,EAAAD,GAAA,qBAAAE,EAAA,mBAAAC,GAAA,eAAAC,EAAA,aAAAC,EAAA,oBAAAC,EAAA,mBAAAC,EAAA,qBAAAC,GAAA,oBAAAC,EAAA,eAAAC,GAAA,yBAAAC,EAAA,eAAAC,EAAA,QAAAC,EAAA,cAAAC,IAAA,eAAAC,EAAAf,IAAA,IAAAgB,GAAO,iCCAA,IAAKC,OACVA,EAAA,IAAM,MACNA,EAAA,UAAY,YAFFA,OAAA,ICQL,IAAMC,EAAN,KAAiB,CACb,OAEA,KAEA,KAET,YAAY,CAAE,OAAAC,EAAQ,KAAAC,EAAM,KAAAC,CAAK,EAAgC,CAC/D,KAAK,OAASF,EACd,KAAK,KAAOC,EACZ,KAAK,KAAOC,CACd,CACF,ECRO,IAAMC,EAAN,cAAmCC,CAAW,CAE1C,KAGA,UAET,YAAY,CACV,KAAAC,EAAO,CAAC,EACR,UAAAC,EACA,KAAAC,cACA,GAAGC,CACL,EAAiC,CAC/B,MAAM,CAAE,GAAGA,EAAO,KAAAD,CAAK,CAAC,EAExB,KAAK,KAAOF,EACZ,KAAK,UAAYC,CACnB,CACF,ECtBO,SAASG,GAAkB,CAChC,MAAO,CACL,cAAAC,EACA,OAAAC,CACF,CACF,CAEA,SAASD,GAAgB,CACvB,IAAME,EAAS,gBACf,MAAO,CACL,eAAgB,KAA8B,CAC5C,MAAO,CAAC,CAAE,MAAAC,CAAM,IACd,IAAIC,EAAqB,CACvB,OAAQF,EACR,KAAM,iBACN,KAAM,CAACC,CAAK,EAEZ,UAAW,MAAOE,GAChBA,EAAS,gBAAgB,EAAE,eAAe,SAAS,CACvD,CAAC,CACL,GACA,kBAAmB,KAA8B,CAC/C,MAAO,CAAC,CAAE,MAAAF,CAAM,IACd,IAAIC,EAAqB,CACvB,OAAQF,EACR,KAAM,oBACN,KAAM,CAACC,CAAK,EAEZ,UAAW,MAAOE,GAChBA,EAAS,gBAAgB,EAAE,eAAe,SAAS,CACvD,CAAC,CACL,EACF,CACF,CAEA,SAASJ,GAAS,CAChB,MAAO,CACL,MAAO,KAA8B,CACnC,MAAO,CAAC,CAAE,MAAAE,CAAM,IACd,IAAIC,EAAqB,CACvB,OAAQ,SACR,KAAM,QACN,KAAM,CAACD,CAAK,EACZ,UAAW,MACTE,GAEAA,EAAS,gBAAgB,EAAE,WAAW,SAAS,CACnD,CAAC,CACL,EACF,CACF,CCjDA,IAAAC,EAAyB,0BACzBC,EAA6B,iCCR7B,IAAAC,EAAqC,uCACrCC,EAAmC,0BACnCC,EAA4C,iCCMrC,IAAMC,EAAN,cAA6BC,CAAW,CAEpC,KAEA,QAET,YAAY,CAAE,KAAAC,EAAM,QAAAC,EAAS,GAAGC,CAAM,EAAoC,CACxE,MAAM,CAAE,GAAGA,EAAO,UAAmB,CAAC,EAEtC,KAAK,KAAOF,EACZ,KAAK,QAAUC,CACjB,CACF,EDdA,IAAME,EAAW,sBAEV,SAASC,GAAU,CACxB,MAAO,CACL,SAAU,CAACC,EAASF,KAAqC,CACvD,MAAO,CAAC,CAAE,QAAAG,EAAS,OAAAC,EAAQ,MAAAC,EAAO,YAAAC,CAAY,IAC5C,IAAIC,EAAe,CACjB,KAAM,IACJ,YAASF,CAAK,KAAI,wBAAqBA,CAAK,EAAIA,EAChDD,EACAI,EAA4BL,EAASG,CAAW,EAChDJ,CACF,EACA,KAAM,WACN,OAAQ,SACV,CAAC,CACL,GACA,wBAAyB,CAACA,EAASF,KAAqC,CACtE,MAAO,CAAC,CAAE,QAAAG,EAAS,OAAAC,EAAQ,MAAAC,EAAO,YAAAC,EAAa,IAAAG,EAAK,SAAAC,CAAS,IAC3D,IAAIH,EAAe,CACjB,KAAM,CACJ,CACE,IAAC,YAASF,CAAK,KAAI,wBAAqBA,CAAK,EAAIA,EAAOD,CAAM,EAC9D,IACE,YAASM,CAAQ,KAAI,wBAAqBA,CAAQ,EAAIA,EACtDD,CACF,CACF,EACA,EACAD,EAA4BL,EAASG,CAAW,EAChDJ,CACF,EACA,KAAM,0BACN,OAAQ,SACV,CAAC,CACL,GACA,oBAAqB,CAACA,EAASF,KAAqC,CAClE,MAAO,CAAC,CAAE,QAAAG,EAAS,OAAAC,EAAQ,MAAAC,EAAO,YAAAC,CAAY,IAAM,CAClD,IAAMK,EACJC,EACET,EACAG,CACF,EAEF,OAAO,IAAIC,EAAe,CACxB,KAAM,IACJ,YAASF,CAAK,KAAI,wBAAqBA,CAAK,EAAIA,EAChDD,EACAO,EACAT,CACF,EACA,KAAM,WACN,OAAQ,SACV,CAAC,CACH,CACF,EACF,CACF,CAmCA,SAASU,EACPT,EACAG,EAC0B,CAM1B,IAAMO,EAAc,KACdC,KAAmB,gBAAaX,CAAO,EACvCY,EAAM,KAAKF,CAAW,MAAG,eAC7B,iBAAcC,CAAgB,EAC9B,GACA,EACF,CAAC,KAED,MAAO,CACL,EACAR,EAAY,YACR,CAAC,YAAYA,EAAY,YAAY,SAAS,EAAE,CAAC,GAAIS,CAAG,EACxD,CAACA,CAAG,CACV,CACF,CAEA,SAASP,EACPL,EACAG,EAC0B,CAO1B,IAAMS,EAAM,KADQT,EAAY,eAAe,EAAI,KAAO,IAC9B,MAAG,eAC7B,iBAAcH,CAAO,EACrB,GACA,EACF,CAAC,KAED,MAAO,CACL,EACAG,EAAY,YACR,CAAC,YAAYA,EAAY,YAAY,SAAS,EAAE,CAAC,GAAIS,CAAG,EACxD,CAACA,CAAG,CACV,CACF,CEjJO,SAASC,GAAkB,CAChC,MAAO,CACL,QAAAC,CACF,CACF,CHcO,SAASC,IAAiB,CAC/B,MAAO,CACL,IAAAC,EACA,UAAAC,CACF,CACF,CAEO,SAASD,GAAM,CACpB,MAAO,CACL,MAAAE,EACF,CACF,CAEO,SAASD,GAAY,CAC1B,MAAO,CACL,OAAAE,GACA,OAAAC,GACA,OAAAC,EACF,CACF,CAEA,SAASH,IAA8B,CACrC,MAAO,CACL,MAAO,CAAC,CAAE,QAAAI,EAAS,MAAAC,CAAM,IAAM,CAC7B,GAAI,CAACA,GAAS,IAAC,YAASA,CAAK,EAC3B,MAAM,IAAI,MAAM,6BAA6BA,CAAK,EAAE,EAGtD,OAAO,IAAIC,EAAe,CACxB,QAASD,EACT,KAAM,CAACD,CAAO,EACd,KAAM,YACN,OAAQ,OACV,CAAC,CACH,CACF,CACF,CAEA,SAASH,IAAS,CAChB,MAAO,CACL,QAAS,KAA6B,CACpC,MAAO,CAAC,CAAE,QAAAG,EAAS,MAAAC,CAAM,IACvB,IAAIE,EAAqB,CACvB,OAAQ,SACR,KAAM,UACN,KAAM,CAACF,EAAOD,CAAO,EACrB,UAAW,MACTI,GACoBA,EAAS,gBAAgB,EAAE,QAAQ,SAAS,CACpE,CAAC,CACL,EACF,CACF,CAEA,SAASN,IAAS,CAChB,MAAO,CACL,QAAS,KAA6B,CACpC,MAAO,CAAC,CAAE,QAAAE,CAAQ,IAChB,IAAIG,EAAqB,CACvB,OAAQ,SACR,KAAM,UACN,KAAM,CAACH,CAAO,EACd,UAAW,MACTI,GACoB,CACpB,IAAMC,EAAUD,EAAS,KAEnBE,EAASD,EAAQ,YAAcA,EAAQ,OAE7C,OAAO,OAAOA,EAAQ,KAAK,IAAIC,CAAM,EAAE,SAAS,CAAC,CACnD,CACF,CAAC,CACL,GACA,mBAAoB,KAA6B,CAC/C,MAAO,CAAC,CAAE,QAAAN,EAAS,MAAAC,CAAM,IACvB,IAAIE,EAAqB,CACvB,OAAQ,SACR,KAAM,UACN,KAAM,CAACH,CAAO,EACd,UAAW,MAAOI,GAA8B,CAnG1D,IAAAG,EAoGY,GAAIH,EAAS,KAAK,QAChB,OAAO,GAGT,IAAMI,EAAMJ,EAAS,KAAK,OAAO,EAC7BK,EAYJ,GAVI,MAAM,QAAQD,CAAG,IACnBC,EAAWD,GAIT,MAAM,SAASD,EAAAC,GAAA,YAAAA,EAAa,KAAb,YAAAD,EAAiB,OAAO,IAEzCE,EAAYD,EAAY,GAAG,SAGzB,CAACC,EACH,MAAM,IAAI,MAAM,0CAA0C,EAG5D,IAAMJ,EAAUI,EAAS,KAAK,CAAC,CAACC,CAAO,IAAMA,IAAYT,CAAK,EAE9D,OAAKI,EAIE,OAAOA,EAAQ,CAAC,EAAE,QAAQ,EAHxB,EAIX,CACF,CAAC,CACL,GACA,eAAgB,KAA6B,CAC3C,MAAO,CAAC,CAAE,QAAAL,CAAQ,IAAM,CACtB,IAAMW,KAAmB,gBAAaX,CAAO,EAE7C,OAAO,IAAIG,EAAqB,CAC9B,OAAQ,SACR,KAAM,UACN,KAAM,CAACQ,CAAgB,EACvB,UAAW,MACTP,GACoB,CACpB,IAAMC,EAAUD,EAAS,KAEnBE,EAASD,EAAQ,YAAcA,EAAQ,OAE7C,OAAO,OAAOA,EAAQ,KAAK,IAAIC,CAAM,EAAE,SAAS,CAAC,CACnD,CACF,CAAC,CACH,CACF,EACF,CACF,CAEA,SAASP,IAAS,CAChB,MAAO,CACL,SAAU,KAA6B,CACrC,MAAO,CAAC,CAAE,QAAAC,EAAS,MAAAC,CAAM,IACvB,IAAIE,EAAqB,CACvB,OAAQ,SACR,KAAM,WACN,KAAM,CAACH,EAASC,CAAK,EACrB,UAAW,MAAO,CAChB,KAAAW,EACA,OAAAN,CACF,IACE,OAAOM,EAAK,IAAIN,CAAM,EAAE,SAAS,CAAC,CACtC,CAAC,CACL,EACF,CACF,CIzKA,IAAAO,EAA2B,2BAC3BC,EAAyB,0BACzBC,EAA8B,iCCevB,IAAKC,OACVA,EAAA,GAAK,KACLA,EAAA,GAAK,KACLA,EAAA,GAAK,KAHKA,OAAA,IDZL,SAASC,EACdC,EACAC,EAAgB,EACJ,CACZ,GAAI,CAACD,EAAM,WAEX,GAAM,CAAE,KAAAE,CAAK,EAAIF,EAAK,KAAK,KAAKC,CAAK,EAC/BE,EAAWH,EAAK,KAAK,SAAS,WAAWE,EAAK,SAAS,CAAC,EACxDE,KAAM,cAAWD,GAAA,YAAAA,EAAU,WAAW,EAE5C,GAAI,CAACC,EAAI,IACP,WAGF,IAAMC,EAAW,MAAM,QAAQD,EAAI,GAAG,EAClCA,EAAI,IAAI,IAAKE,GAAMA,EAAE,IAAI,EACzB,CAACF,EAAI,IAAI,IAAI,EAEjB,GAAIC,EAAS,aAAsB,EACjC,WAGF,GAAIA,EAAS,aAAsB,EACjC,WAGF,GAAIA,EAAS,aAAsB,EACjC,WAGF,MAAM,IAAI,MAAM,wBAAwB,CAC1C,CAEO,SAASE,EAAoBC,EAAiB,CAGnD,OAFqBA,EAAQ,SAAW,IAAMA,EAAQ,WAAW,IAAI,EAGjE,CACE,aAAc,CACZ,IAAKA,CACP,CACF,EACA,CACE,YAAa,CACX,MAAI,eAAS,iBAAcA,CAAO,CAAC,EACnC,QAAS,IACX,CACF,CACN,CE5CO,IAAMC,EAAN,cAA8BC,CAAW,CAE9C,QAEA,YAAY,CAAE,QAAAC,EAAS,GAAGC,CAAM,EAAqC,CACnE,MAAM,CAAE,GAAGA,EAAO,gBAAyB,CAAC,EAE5C,KAAK,QAAUD,CACjB,CACF,ECRA,IAAME,EAAS,aAER,SAASC,GAAa,CAC3B,MAAO,CACL,YAAa,KAA+B,CAC1C,MAAO,CAAC,CAAE,QAAAC,EAAS,OAAAC,EAAQ,MAAAC,EAAO,YAAAC,CAAY,IAC5C,IAAIC,EAAgB,CAClB,OAAQN,EACR,KAAM,cACN,QAAS,IAAM,CACbI,EACAD,EACA,CACE,QAAS,EACT,SAAU,CACR,GAAI,CACF,CACE,UAAWE,EAAY,WACzB,EACAE,EAAoBL,CAAO,CAC7B,CACF,CACF,EACA,gBACF,CACF,CAAC,CACL,GACA,YAAa,KAA+B,CAC1C,MAAO,CAAC,CAAE,QAAAA,EAAS,OAAAC,EAAQ,MAAAC,EAAO,YAAAC,EAAa,IAAAG,EAAK,SAAAC,CAAS,IAC3D,IAAIH,EAAgB,CAClB,OAAQN,EACR,KAAM,cACN,QAAS,IAAM,CACb,IAAMU,EAAmBP,EAASK,EAAM,GAAKL,EAASK,EAAM,GAE5D,MAAO,CACL,CAACJ,EAAOA,IAAUK,EAAWC,EAAmBP,CAAM,EACtD,CAACM,EAAUD,CAAG,EACd,CACE,QAAS,EACT,SAAU,CACR,GAAI,CACF,CACE,UAAWH,EAAY,WACzB,EACAE,EAAoBL,CAAO,CAC7B,CACF,CACF,CACF,CACF,CACF,CAAC,CACL,EACF,CACF,CC9CO,SAASS,EAA4B,CAC1C,MAAAC,EACA,QAAAC,EACA,YAAAC,EACA,KAAAC,EACA,QAAAC,EAAU,EACV,SAAAC,EAAW,CAEb,EAA8B,CAE5B,IAAMC,EAAUC,EAA4BJ,CAAI,EAEhD,MAAO,CACL,CACE,CAACG,CAAO,EAAG,CACT,QAAAF,EACA,SAAU,CACR,GAAI,CACF,UAAWF,EAAY,WACzB,CACF,CACF,CACF,EACA,CACE,CAACI,CAAO,EAAG,CACT,QAAS,EACT,SAAU,CACR,GAAIE,EAAoBP,CAAO,CACjC,CACF,CACF,EACA,CACE,CAACK,CAAO,EAAGN,CACb,EACAK,EACA,WACF,CACF,CCnDA,IAAMI,EAAS,cAER,SAASC,GAAc,CAC5B,MAAO,CACL,6BAA8B,IAAM,CAClC,IAAMC,EAAO,+BAEb,MAAO,CACL,KAAM,KAA+B,CACnC,MAAQC,GACN,IAAIC,EAAgB,CAClB,OAAQJ,EACR,KAAAE,EACA,QAAUG,GACRC,EAA4B,CAC1B,GAAGH,EACH,KAAME,EACN,MAAO,CACL,CACE,GAAI,CACF,SAAU,CACR,QAAS,EACT,SAAU,MACZ,CACF,EACA,IAAK,CACH,SAAUF,EAAO,MACnB,CACF,CACF,CACF,CAAC,CACL,CAAC,CACL,GACA,GAAI,KAA+B,CACjC,MAAQA,GACN,IAAIC,EAAgB,CAClB,OAAQJ,EACR,KAAAE,EACA,QAAUG,GACRC,EAA4B,CAC1B,GAAGH,EACH,KAAME,EACN,MAAO,CACL,CACE,GAAI,CACF,SAAU,CACR,QAAS,EACT,SAAU,CACR,GAAI,CACF,eAAgBF,EAAO,cACzB,CACF,CACF,CACF,EACA,IAAK,CACH,SAAUA,EAAO,MACnB,CACF,CACF,CACF,CAAC,CACL,CAAC,CACL,GACA,GAAI,KAA+B,CACjC,MAAQA,GACN,IAAIC,EAAgB,CAClB,OAAQJ,EACR,KAAAE,EACA,QAAUG,GAAsB,CAC9B,IAAME,EACJ,CAAC,CAACJ,EAAO,UAAYA,EAAO,QAAUA,EAAO,SACzCK,EAAQ,CACZ,CACE,GAAI,CACF,SAAU,CACR,QAAS,EACT,SAAU,CACR,GAAI,CACF,CACE,eAAgBL,EAAO,cACzB,EACA,CACE,aAAcA,EAAO,KACvB,CACF,CACF,CACF,CACF,EACA,IAAK,CACH,SAAUA,EAAO,MACnB,CACF,CACF,EAEA,OAAII,GACFC,EAAM,KAAK,CACT,GAAI,CACF,SAAU,CACR,QAAS,EACT,SAAU,CACR,GAAI,CACF,CACE,eAAgBL,EAAO,cACzB,EACA,CACE,aAAcA,EAAO,QACvB,CACF,CACF,CACF,CACF,EACA,IAAK,CACH,SAAUA,EAAO,GACnB,CACF,CAAC,EAGIG,EAA4B,CACjC,GAAGH,EACH,KAAME,EACN,MAAAG,EACA,SAAUD,EAAmB,EAAI,CACnC,CAAC,CACH,CACF,CAAC,CACL,EACF,CACF,EACA,6BAA8B,IAAM,CAClC,IAAML,EAAO,+BAEb,MAAO,CACL,GAAI,KAA+B,CACjC,MAAQC,GACN,IAAIC,EAAgB,CAClB,OAAQJ,EACR,KAAAE,EACA,QAAUG,GACRC,EAA4B,CAC1B,GA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AAC,CAAY,IACrC,IAAIC,EAAgB,CAClB,OAAQN,EACR,KAAME,EACN,QAAS,IAAM,CACb,CACE,GAAI,CACF,SAAU,CACR,QAAS,EACT,SAAU,MACZ,CACF,EACA,IAAK,CACH,SAAUE,CACZ,CACF,EACA,CACE,QAAS,EACT,SAAU,CACR,GAAI,CACF,CACE,UAAWC,EAAY,WACzB,EACAE,EAAoBJ,CAAO,CAC7B,CACF,CACF,EACA,CACE,QAAS,IACT,UAAW,CACb,CACF,CACF,CAAC,CACL,GACA,GAAI,KAA+B,CACjC,MAAO,CAAC,CAAE,QAAAA,EAAS,OAAAC,EAAQ,YAAAC,EAAa,eAAAG,CAAe,IACrD,IAAIF,EAAgB,CAClB,OAAQN,EACR,KAAME,EACN,QAAS,IAAM,CACb,CACE,GAAI,CACF,SAAU,CACR,QAAS,EACT,SAAU,CACR,GAAI,CACF,CACE,UAAWG,EAAY,WACzB,EACA,CACE,eAAgBG,CAClB,CACF,CACF,CACF,CACF,EACA,IAAK,CACH,SAAUJ,GAAU,EACtB,CACF,EACA,CACE,QAAS,EACT,SAAU,CACR,GAAI,CACF,CACE,UAAWC,EAAY,WACzB,EACAE,EAAoBJ,CAAO,CAC7B,CACF,CACF,EACA,CACE,QAAS,IACT,UAAW,CACb,CACF,CACF,CAAC,CACL,EACF,CACF,CACF,CACF,CCvFA,IAAMM,GAAS,YAER,SAASC,GAAY,CAC1B,MAAO,CACL,6BAA8B,CAACC,EAAmB,IAAM,CACtD,IAAMC,EAAO,+BAEb,MAAO,CACL,KAAM,KAA+B,CACnC,MAAQC,GACN,IAAIC,EAAgB,CAClB,OAAQL,GACR,KAAAG,EACA,QAAUG,GACRC,EAA4B,CAC1B,GAAGH,EACH,QAAAF,EACA,KAAMI,EACN,MAAO,CACL,CACE,GAAI,CACF,SAAU,CACR,QAAS,EACT,SAAU,MACZ,CACF,EACA,IAAK,CACH,SAAUF,EAAO,MACnB,CACF,CACF,CACF,CAAC,CACL,CAAC,CACL,EACF,CACF,CACF,CACF,CCpCO,SAASI,IAAmB,CACjC,MAAO,CACL,WAAAC,EACA,QAAAC,EACA,UAAAC,EACA,YAAAC,EACA,UAAAC,CACF,CACF,CCTO,IAAMC,EAAN,KAA0B,CACtB,IAGA,KAEA,iBAET,YAAY,CAAE,IAAAC,EAAK,KAAAC,CAAK,EAAyC,CAC/D,KAAK,IAAMD,EACX,KAAK,KAAOC,CACd,CACF,ECbO,SAASC,IAAa,CAC3B,MAAO,CACL,aAAAC,EACF,CACF,CAEA,SAASA,IAAe,CACtB,MAAO,CACL,wBAAyB,CAACC,EAAS,OAAqC,CACtE,MAAO,CAAC,CAAE,IAAAC,EAAK,MAAAC,CAAM,IACnB,IAAIC,EAAoB,CACtB,IAAAF,EACA,KAAM,SAA6B,CACjC,IAAMG,EAAQ,MAAMH,EAAI,MAAM,aAAa,YACzCC,CAEF,EAEA,GAAIE,EAAK,OACP,MAAM,IAAI,MAAM,iCAAiCF,CAAK,EAAE,EAG1D,IAAMG,EAAgBD,EAAK,OAAO,EAM5BE,GAJO,MAAML,EAAI,MAAM,aAAa,wBACxCI,CACF,GAE2B,gBAAgB,EAAE,SAAS,EAEtD,OAAQ,OAAOL,CAAM,EAAIM,EAAkB,OAAO,IAAM,EAAE,CAC5D,CACF,CAAC,CACL,EACF,CACF","names":["src_exports","__export","AssetMinBuilder","BalanceBuilder","BaseConfig","CallType","ContractBuilder","ContractConfig","ExtrinsicBuilder","ExtrinsicConfig","FeeBuilder","SubstrateQueryConfig","XcmVersion","evm","substrate","__toCommonJS","import_api_augment","CallType","BaseConfig","module","func","type","SubstrateQueryConfig","BaseConfig","args","transform","type","other","AssetMinBuilder","assetRegistry","assets","pallet","asset","SubstrateQueryConfig","response","import_util","import_util_crypto","import_xcm_utils","import_util","import_util_crypto","ContractConfig","BaseConfig","args","address","other","U_64_MAX","Xtokens","weight","address","amount","asset","destination","ContractConfig","getDestinationMultilocation","fee","feeAsset","multilocation","getDestinationMultilocationForPrecompileDestination","accountType","substrateAddress","acc","ContractBuilder","Xtokens","BalanceBuilder","evm","substrate","erc20","assets","system","tokens","address","asset","ContractConfig","SubstrateQueryConfig","response","balance","frozen","_a","res","balances","assetId","substrateAddress","free","import_types","import_util","import_util_crypto","XcmVersion","getExtrinsicArgumentVersion","func","index","type","instance","raw","versions","x","getExtrinsicAccount","address","ExtrinsicConfig","BaseConfig","getArgs","other","pallet","eqBalances","address","amount","asset","destination","ExtrinsicConfig","getExtrinsicAccount","fee","feeAsset","amountWithoutFee","getPolkadotXcmExtrinsicArgs","asset","address","destination","func","parents","feeIndex","version","getExtrinsicArgumentVersion","getExtrinsicAccount","pallet","polkadotXcm","func","params","ExtrinsicConfig","extrinsicFunction","getPolkadotXcmExtrinsicArgs","isAssetDifferent","asset","getWeight","getDestination","version","address","destination","getExtrinsicAccount","pallet","xTokens","address","amount","asset","destination","ExtrinsicConfig","func","version","getExtrinsicArgumentVersion","getDestination","getWeight","originParachainId","funcName","fee","feeAsset","pallet","xTransfer","method","address","amount","destination","ExtrinsicConfig","getExtrinsicAccount","palletInstance","pallet","xcmPallet","parents","func","params","ExtrinsicConfig","extrinsicFunction","getPolkadotXcmExtrinsicArgs","ExtrinsicBuilder","eqBalances","xTokens","xTransfer","polkadotXcm","xcmPallet","SubstrateCallConfig","api","call","FeeBuilder","assetManager","weight","api","asset","SubstrateCallConfig","type","unwrappedType","unitsPerSecond"]}
@@ -0,0 +1,235 @@
1
+ import { SetOptional, ChainAssetId, AnyChain } from '@moonbeam-network/xcm-types';
2
+ import { Struct, u128 } from '@polkadot/types';
3
+ import { SubmittableExtrinsicFunction } from '@polkadot/api/types';
4
+ import { ApiPromise } from '@polkadot/api';
5
+
6
+ declare enum CallType {
7
+ Evm = "Evm",
8
+ Substrate = "Substrate"
9
+ }
10
+
11
+ interface BaseConfigConstructorParams {
12
+ module: string;
13
+ func: string;
14
+ type: CallType;
15
+ }
16
+ declare class BaseConfig {
17
+ readonly module: string;
18
+ readonly func: string;
19
+ readonly type: CallType;
20
+ constructor({ module, func, type }: BaseConfigConstructorParams);
21
+ }
22
+
23
+ interface QueryConfigConstructorParams extends SetOptional<BaseConfigConstructorParams, 'type'> {
24
+ args?: any[];
25
+ transform: (data: any) => Promise<bigint>;
26
+ }
27
+ declare class SubstrateQueryConfig extends BaseConfig {
28
+ readonly args: any[];
29
+ readonly transform: (data: any) => Promise<bigint>;
30
+ constructor({ args, transform, type, ...other }: QueryConfigConstructorParams);
31
+ }
32
+
33
+ interface AssetMinConfigBuilder {
34
+ build: (params: AssetMinConfigBuilderPrams) => SubstrateQueryConfig;
35
+ }
36
+ interface AssetMinConfigBuilderPrams {
37
+ asset: ChainAssetId;
38
+ }
39
+
40
+ declare function AssetMinBuilder(): {
41
+ assetRegistry: typeof assetRegistry;
42
+ assets: typeof assets$1;
43
+ };
44
+ declare function assetRegistry(): {
45
+ assetMetadatas: () => AssetMinConfigBuilder;
46
+ currencyMetadatas: () => AssetMinConfigBuilder;
47
+ };
48
+ declare function assets$1(): {
49
+ asset: () => AssetMinConfigBuilder;
50
+ };
51
+
52
+ interface ContractConfigConstructorParams extends Omit<BaseConfigConstructorParams, 'type'> {
53
+ args: any[];
54
+ address?: string;
55
+ }
56
+ declare class ContractConfig extends BaseConfig {
57
+ readonly args: any[];
58
+ readonly address?: string;
59
+ constructor({ args, address, ...other }: ContractConfigConstructorParams);
60
+ }
61
+
62
+ interface ContractConfigBuilder {
63
+ build: (params: ContractConfigBuilderPrams) => ContractConfig;
64
+ }
65
+ interface ContractConfigBuilderPrams {
66
+ address: string;
67
+ amount: bigint;
68
+ asset: ChainAssetId;
69
+ destination: AnyChain;
70
+ fee: bigint;
71
+ feeAsset: ChainAssetId;
72
+ }
73
+
74
+ declare function Xtokens(): {
75
+ transfer: (weight?: bigint) => ContractConfigBuilder;
76
+ transferMultiCurrencies: (weight?: bigint) => ContractConfigBuilder;
77
+ transferWithEvmTo32: (weight?: bigint) => ContractConfigBuilder;
78
+ };
79
+
80
+ declare function ContractBuilder(): {
81
+ Xtokens: typeof Xtokens;
82
+ };
83
+
84
+ interface BalanceConfigBuilder {
85
+ build: (params: BalanceConfigBuilderPrams) => SubstrateQueryConfig | ContractConfig;
86
+ }
87
+ interface BalanceConfigBuilderPrams {
88
+ address: string;
89
+ asset: ChainAssetId;
90
+ }
91
+ interface PalletBalancesAccountDataOld extends Struct {
92
+ readonly free: u128;
93
+ readonly reserved: u128;
94
+ readonly miscFrozen: u128;
95
+ readonly feeFrozen: u128;
96
+ }
97
+ interface TokensPalletAccountData {
98
+ free: u128;
99
+ reserved: u128;
100
+ frozen: u128;
101
+ }
102
+ type EquilibriumSystemBalanceData = Array<[
103
+ number,
104
+ {
105
+ positive: number;
106
+ }
107
+ ]>;
108
+
109
+ declare function BalanceBuilder(): {
110
+ evm: typeof evm;
111
+ substrate: typeof substrate;
112
+ };
113
+ declare function evm(): {
114
+ erc20: typeof erc20;
115
+ };
116
+ declare function substrate(): {
117
+ assets: typeof assets;
118
+ system: typeof system;
119
+ tokens: typeof tokens;
120
+ };
121
+ declare function erc20(): BalanceConfigBuilder;
122
+ declare function assets(): {
123
+ account: () => BalanceConfigBuilder;
124
+ };
125
+ declare function system(): {
126
+ account: () => BalanceConfigBuilder;
127
+ accountEquilibrium: () => BalanceConfigBuilder;
128
+ accountEvmTo32: () => BalanceConfigBuilder;
129
+ };
130
+ declare function tokens(): {
131
+ accounts: () => BalanceConfigBuilder;
132
+ };
133
+
134
+ interface ExtrinsicConfigConstructorParams extends Omit<BaseConfigConstructorParams, 'type'> {
135
+ getArgs: (func?: SubmittableExtrinsicFunction<'promise'>) => any[];
136
+ }
137
+ declare class ExtrinsicConfig extends BaseConfig {
138
+ getArgs: (func?: SubmittableExtrinsicFunction<'promise'>) => any[];
139
+ constructor({ getArgs, ...other }: ExtrinsicConfigConstructorParams);
140
+ }
141
+
142
+ interface ExtrinsicConfigBuilder {
143
+ build: (params: ExtrinsicConfigBuilderPrams) => ExtrinsicConfig;
144
+ }
145
+ interface ExtrinsicConfigBuilderPrams {
146
+ address: string;
147
+ amount: bigint;
148
+ asset: ChainAssetId;
149
+ destination: AnyChain;
150
+ fee: bigint;
151
+ feeAsset: ChainAssetId;
152
+ palletInstance?: number;
153
+ source: AnyChain;
154
+ }
155
+ declare enum XcmVersion {
156
+ v1 = "V1",
157
+ v2 = "V2",
158
+ v3 = "V3"
159
+ }
160
+ type Parents = 0 | 1;
161
+
162
+ declare function eqBalances(): {
163
+ xcmTransfer: () => ExtrinsicConfigBuilder;
164
+ transferXcm: () => ExtrinsicConfigBuilder;
165
+ };
166
+
167
+ declare function polkadotXcm(): {
168
+ limitedReserveTransferAssets: () => {
169
+ here: () => ExtrinsicConfigBuilder;
170
+ X1: () => ExtrinsicConfigBuilder;
171
+ X2: () => ExtrinsicConfigBuilder;
172
+ };
173
+ limitedReserveWithdrawAssets: () => {
174
+ X2: () => ExtrinsicConfigBuilder;
175
+ };
176
+ };
177
+
178
+ declare function xTokens(): {
179
+ transfer: () => ExtrinsicConfigBuilder;
180
+ transferMultiAsset: (originParachainId: number) => {
181
+ here: () => ExtrinsicConfigBuilder;
182
+ X1: () => ExtrinsicConfigBuilder;
183
+ X2: () => ExtrinsicConfigBuilder;
184
+ };
185
+ transferMultiCurrencies: () => ExtrinsicConfigBuilder;
186
+ };
187
+
188
+ declare function xTransfer(): {
189
+ transfer: () => {
190
+ here: () => ExtrinsicConfigBuilder;
191
+ X2: () => ExtrinsicConfigBuilder;
192
+ };
193
+ };
194
+
195
+ declare function xcmPallet(): {
196
+ limitedReserveTransferAssets: (parents?: Parents) => {
197
+ here: () => ExtrinsicConfigBuilder;
198
+ };
199
+ };
200
+
201
+ declare function ExtrinsicBuilder(): {
202
+ eqBalances: typeof eqBalances;
203
+ xTokens: typeof xTokens;
204
+ xTransfer: typeof xTransfer;
205
+ polkadotXcm: typeof polkadotXcm;
206
+ xcmPallet: typeof xcmPallet;
207
+ };
208
+
209
+ interface SubstrateCallConfigConstructorParams {
210
+ api: ApiPromise;
211
+ call: () => Promise<bigint>;
212
+ }
213
+ declare class SubstrateCallConfig {
214
+ readonly api: ApiPromise;
215
+ readonly call: () => Promise<any>;
216
+ readonly type = CallType.Substrate;
217
+ constructor({ api, call }: SubstrateCallConfigConstructorParams);
218
+ }
219
+
220
+ interface FeeConfigBuilder {
221
+ build: (params: FeeConfigBuilderPrams) => SubstrateCallConfig;
222
+ }
223
+ interface FeeConfigBuilderPrams {
224
+ asset: ChainAssetId;
225
+ api: ApiPromise;
226
+ }
227
+
228
+ declare function FeeBuilder(): {
229
+ assetManager: typeof assetManager;
230
+ };
231
+ declare function assetManager(): {
232
+ assetTypeUnitsPerSecond: (weight?: number) => FeeConfigBuilder;
233
+ };
234
+
235
+ export { AssetMinBuilder, type AssetMinConfigBuilder, type AssetMinConfigBuilderPrams, BalanceBuilder, type BalanceConfigBuilder, type BalanceConfigBuilderPrams, BaseConfig, type BaseConfigConstructorParams, CallType, ContractBuilder, ContractConfig, type ContractConfigBuilder, type ContractConfigBuilderPrams, type ContractConfigConstructorParams, type EquilibriumSystemBalanceData, ExtrinsicBuilder, ExtrinsicConfig, type ExtrinsicConfigBuilder, type ExtrinsicConfigBuilderPrams, type ExtrinsicConfigConstructorParams, FeeBuilder, type FeeConfigBuilder, type FeeConfigBuilderPrams, type PalletBalancesAccountDataOld, type Parents, type QueryConfigConstructorParams, SubstrateQueryConfig, type TokensPalletAccountData, XcmVersion, evm, substrate };
package/build/index.d.ts CHANGED
@@ -1,5 +1,8 @@
1
- import { ChainAssetId, AnyChain } from '@moonbeam-network/xcm-types';
2
- import { SetOptional } from 'type-fest';
1
+ import {
2
+ SetOptional,
3
+ ChainAssetId,
4
+ AnyChain,
5
+ } from '@moonbeam-network/xcm-types';
3
6
  import { Struct, u128 } from '@polkadot/types';
4
7
  import { SubmittableExtrinsicFunction } from '@polkadot/api/types';
5
8
  import { ApiPromise } from '@polkadot/api';
@@ -80,8 +83,9 @@ interface ContractConfigBuilderPrams {
80
83
  }
81
84
 
82
85
  declare function Xtokens(): {
83
- transfer: (weight?: number) => ContractConfigBuilder;
84
- transferMultiCurrencies: (weight?: number) => ContractConfigBuilder;
86
+ transfer: (weight?: bigint) => ContractConfigBuilder;
87
+ transferMultiCurrencies: (weight?: bigint) => ContractConfigBuilder;
88
+ transferWithEvmTo32: (weight?: bigint) => ContractConfigBuilder;
85
89
  };
86
90
 
87
91
  declare function ContractBuilder(): {
@@ -136,6 +140,7 @@ declare function assets(): {
136
140
  declare function system(): {
137
141
  account: () => BalanceConfigBuilder;
138
142
  accountEquilibrium: () => BalanceConfigBuilder;
143
+ accountEvmTo32: () => BalanceConfigBuilder;
139
144
  };
140
145
  declare function tokens(): {
141
146
  accounts: () => BalanceConfigBuilder;
@@ -189,6 +194,7 @@ declare function polkadotXcm(): {
189
194
  declare function xTokens(): {
190
195
  transfer: () => ExtrinsicConfigBuilder;
191
196
  transferMultiAsset: (originParachainId: number) => {
197
+ here: () => ExtrinsicConfigBuilder;
192
198
  X1: () => ExtrinsicConfigBuilder;
193
199
  X2: () => ExtrinsicConfigBuilder;
194
200
  };
@@ -244,33 +250,33 @@ declare function assetManager(): {
244
250
 
245
251
  export {
246
252
  AssetMinBuilder,
247
- AssetMinConfigBuilder,
248
- AssetMinConfigBuilderPrams,
253
+ type AssetMinConfigBuilder,
254
+ type AssetMinConfigBuilderPrams,
249
255
  BalanceBuilder,
250
- BalanceConfigBuilder,
251
- BalanceConfigBuilderPrams,
256
+ type BalanceConfigBuilder,
257
+ type BalanceConfigBuilderPrams,
252
258
  BaseConfig,
253
- BaseConfigConstructorParams,
259
+ type BaseConfigConstructorParams,
254
260
  CallType,
255
261
  ContractBuilder,
256
262
  ContractConfig,
257
- ContractConfigBuilder,
258
- ContractConfigBuilderPrams,
259
- ContractConfigConstructorParams,
260
- EquilibriumSystemBalanceData,
263
+ type ContractConfigBuilder,
264
+ type ContractConfigBuilderPrams,
265
+ type ContractConfigConstructorParams,
266
+ type EquilibriumSystemBalanceData,
261
267
  ExtrinsicBuilder,
262
268
  ExtrinsicConfig,
263
- ExtrinsicConfigBuilder,
264
- ExtrinsicConfigBuilderPrams,
265
- ExtrinsicConfigConstructorParams,
269
+ type ExtrinsicConfigBuilder,
270
+ type ExtrinsicConfigBuilderPrams,
271
+ type ExtrinsicConfigConstructorParams,
266
272
  FeeBuilder,
267
- FeeConfigBuilder,
268
- FeeConfigBuilderPrams,
269
- PalletBalancesAccountDataOld,
270
- Parents,
271
- QueryConfigConstructorParams,
273
+ type FeeConfigBuilder,
274
+ type FeeConfigBuilderPrams,
275
+ type PalletBalancesAccountDataOld,
276
+ type Parents,
277
+ type QueryConfigConstructorParams,
272
278
  SubstrateQueryConfig,
273
- TokensPalletAccountData,
279
+ type TokensPalletAccountData,
274
280
  XcmVersion,
275
281
  evm,
276
282
  substrate,
package/build/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import"@polkadot/api-augment";var p=(t=>(t.Evm="Evm",t.Substrate="Substrate",t))(p||{});var u=class{module;func;type;constructor({module:r,func:t,type:n}){this.module=r,this.func=t,this.type=n}};var c=class extends u{args;transform;constructor({args:r=[],transform:t,type:n="Substrate",...i}){super({...i,type:n}),this.args=r,this.transform=t}};function Z(){return{assetRegistry:F,assets:O}}function F(){let e="assetRegistry";return{assetMetadatas:()=>({build:({asset:r})=>new c({module:e,func:"assetMetadatas",args:[r],transform:async t=>t.unwrapOrDefault().minimalBalance.toBigInt()})}),currencyMetadatas:()=>({build:({asset:r})=>new c({module:e,func:"currencyMetadatas",args:[r],transform:async t=>t.unwrapOrDefault().minimalBalance.toBigInt()})})}}function O(){return{asset:()=>({build:({asset:e})=>new c({module:"assets",func:"asset",args:[e],transform:async r=>r.unwrapOrDefault().minBalance.toBigInt()})})}}import{isString as W}from"@polkadot/util";import{formatAssetIdToERC20 as C}from"@moonbeam-network/xcm-utils";import{isString as b,u8aToHex as M}from"@polkadot/util";import{decodeAddress as D}from"@polkadot/util-crypto";var m=class extends u{args;address;constructor({args:r,address:t,...n}){super({...n,type:"Evm"}),this.args=r,this.address=t}};function E(){return{transfer:(e=4e9)=>({build:({address:r,amount:t,asset:n,destination:i})=>new m({args:[b(n)?C(n):n,t,h(r,i),e],func:"transfer",module:"Xtokens"})}),transferMultiCurrencies:(e=4e9)=>({build:({address:r,amount:t,asset:n,destination:i,fee:o,feeAsset:s})=>new m({args:[[[b(n)?C(n):n,t],[b(s)?C(s):s,o]],1,h(r,i),e],func:"transferMultiCurrencies",module:"Xtokens"})})}}function h(e,r){let n=`0x${r.isEvmParachain()?"03":"01"}${M(D(e),-1,!1)}00`;return[1,r.parachainId?[`0x0000000${r.parachainId.toString(16)}`,n]:[n]]}function xr(){return{Xtokens:E}}function wr(){return{evm:_,substrate:K}}function _(){return{erc20:R}}function K(){return{assets:q,system:V,tokens:U}}function R(){return{build:({address:e,asset:r})=>{if(!r||!W(r))throw new Error(`Invalid contract address: ${r}`);return new m({address:r,args:[e],func:"balanceOf",module:"Erc20"})}}}function q(){return{account:()=>({build:({address:e,asset:r})=>new c({module:"assets",func:"account",args:[r,e],transform:async t=>t.unwrapOrDefault().balance.toBigInt()})})}}function V(){return{account:()=>({build:({address:e})=>new c({module:"system",func:"account",args:[e],transform:async r=>{let t=r.data,n=t.miscFrozen??t.frozen;return BigInt(t.free.sub(n).toString())}})}),accountEquilibrium:()=>({build:({address:e,asset:r})=>new c({module:"system",func:"account",args:[e],transform:async t=>{var s;if(t.data.isEmpty)return 0n;let n=t.data.toJSON(),i;if(Array.isArray(n)&&(i=n),Array.isArray((s=n==null?void 0:n.v0)==null?void 0:s.balance)&&(i=n.v0.balance),!i)throw new Error("Can't get balance from Equilibrium chain");let o=i.find(([d])=>d===r);return o?BigInt(o[1].positive):0n}})})}}function U(){return{accounts:()=>({build:({address:e,asset:r})=>new c({module:"tokens",func:"accounts",args:[e,r],transform:async({free:t,frozen:n})=>BigInt(t.sub(n).toString())})})}}var a=class extends u{getArgs;constructor({getArgs:r,...t}){super({...t,type:"Substrate"}),this.getArgs=r}};var w="eqBalances";function T(){return{xcmTransfer:()=>({build:({address:e,amount:r,asset:t,destination:n})=>new a({module:w,func:"xcmTransfer",getArgs:()=>[t,r,{parents:1,interior:{X2:[{Parachain:n.parachainId},{AccountKey20:{network:"Any",key:e}}]}},"ThisAccWillPay"]})}),transferXcm:()=>({build:({address:e,amount:r,asset:t,destination:n,fee:i,feeAsset:o})=>new a({module:w,func:"transferXcm",getArgs:()=>{let s=r-i>0n?r-i:0n;return[[t,t===o?s:r],[o,i],{parents:1,interior:{X2:[{Parachain:n.parachainId},{AccountKey20:{network:"Any",key:e}}]}}]}})})}}import{getTypeDef as z}from"@polkadot/types";var A=(n=>(n.v1="V1",n.v2="V2",n.v3="V3",n))(A||{});function f(e,r=0){if(!e)return"V1";let{type:t}=e.meta.args[r],n=e.meta.registry.createType(t.toString()),i=z(n==null?void 0:n.toRawType());if(!i.sub)return"V1";let o=Array.isArray(i.sub)?i.sub.map(s=>s.name):[i.sub.name];if(o.includes("V1"))return"V1";if(o.includes("V2"))return"V2";if(o.includes("V3"))return"V3";throw new Error("Can't find Xcm version")}function l({asset:e,address:r,destination:t,func:n,parents:i=1}){let o=f(n);return[{[o]:{parents:i,interior:{X1:{Parachain:t.parachainId}}}},{[o]:{parents:0,interior:{X1:{AccountKey20:{network:"Any",key:r}}}}},{[o]:e},0,"Unlimited"]}var g="polkadotXcm";function X(){return{limitedReserveTransferAssets:()=>{let e="limitedReserveTransferAssets";return{here:()=>({build:r=>new a({module:g,func:e,getArgs:t=>l({...r,func:t,asset:[{id:{Concrete:{parents:0,interior:"Here"}},fun:{Fungible:r.amount}}]})})}),X1:()=>({build:r=>new a({module:g,func:e,getArgs:t=>l({...r,func:t,asset:[{id:{Concrete:{parents:0,interior:{X1:{PalletInstance:5}}}},fun:{Fungible:r.amount}}]})})}),X2:()=>({build:r=>new a({module:g,func:e,getArgs:t=>l({...r,func:t,asset:[{id:{Concrete:{parents:0,interior:{X2:[{PalletInstance:r.palletInstance},{GeneralIndex:r.asset}]}}},fun:{Fungible:r.amount}}]})})})}},limitedReserveWithdrawAssets:()=>{let e="limitedReserveWithdrawAssets";return{X2:()=>({build:r=>new a({module:g,func:e,getArgs:t=>l({...r,func:t,asset:[{id:{Concrete:{parents:1,interior:{X2:[{Parachain:r.destination.parachainId},{PalletInstance:r.palletInstance}]}}},fun:{Fungible:r.amount}}]})})})}}}}function P(e,r){var n;let t=(n=r==null?void 0:r.meta.args.at(-1))==null?void 0:n.type;return t?t.eq("XcmV2WeightLimit")?{Limited:e}:t.eq("XcmV3WeightLimit")?"Unlimited":e:e}var x="xTokens";function I(){return{transfer:()=>({build:({address:e,amount:r,asset:t,destination:n,source:i})=>new a({module:x,func:"transfer",getArgs:o=>{let s=f(o,2);return[t,r,{[s]:{parents:1,interior:{X2:[{Parachain:n.parachainId},{AccountKey20:{network:"Any",key:e}}]}}},P(i.weight,o)]}})}),transferMultiAsset:e=>{let r="transferMultiasset";return{X1:()=>({build:({address:t,amount:n,destination:i})=>new a({module:x,func:r,getArgs:o=>{let s=f(o,1);return[{[s]:{id:{Concrete:{parents:1,interior:{X1:{Parachain:e}}}},fun:{Fungible:n}}},{[s]:{parents:1,interior:{X2:[{Parachain:i.parachainId},{AccountKey20:{network:"Any",key:t}}]}}},"Unlimited"]}})}),X2:()=>({build:({address:t,amount:n,asset:i,destination:o,source:s})=>new a({module:x,func:r,getArgs:d=>{let B=f(d,1);return[{[B]:{id:{Concrete:{parents:1,interior:{X2:[{Parachain:e},{GeneralKey:i}]}}},fun:{Fungible:n}}},{[B]:{parents:1,interior:{X2:[{Parachain:o.parachainId},{AccountKey20:{network:"Any",key:t}}]}}},P(s.weight,d)]}})})}},transferMultiCurrencies:()=>({build:({address:e,amount:r,asset:t,destination:n,fee:i,feeAsset:o})=>new a({module:x,func:"transferMulticurrencies",getArgs:()=>[[[t,r],[o,i]],1,{["V3"]:{parents:1,interior:{X2:[{Parachain:n.parachainId},{AccountKey20:{key:e}}]}}},"Unlimited"]})})}}var k="xTransfer";function S(){return{transfer:()=>{let e="transfer";return{here:()=>({build:({address:r,amount:t,destination:n})=>new a({module:k,func:e,getArgs:()=>[{id:{Concrete:{parents:0,interior:"Here"}},fun:{Fungible:t}},{parents:1,interior:{X2:[{Parachain:n.parachainId},{AccountKey20:{key:r}}]}},{refTime:5e9,proofSize:0}]})}),X2:()=>({build:({address:r,amount:t,destination:n,palletInstance:i})=>new a({module:k,func:e,getArgs:()=>[{id:{Concrete:{parents:1,interior:{X2:[{Parachain:n.parachainId},{PalletInstance:i}]}}},fun:{Fungible:t||1n}},{parents:1,interior:{X2:[{Parachain:n.parachainId},{AccountKey20:{key:r}}]}},{refTime:5e9,proofSize:0}]})})}}}}var L="xcmPallet";function v(){return{limitedReserveTransferAssets:(e=1)=>{let r="limitedReserveTransferAssets";return{here:()=>({build:t=>new a({module:L,func:r,getArgs:n=>l({...t,parents:e,func:n,asset:[{id:{Concrete:{parents:0,interior:"Here"}},fun:{Fungible:t.amount}}]})})})}}}}function At(){return{eqBalances:T,xTokens:I,xTransfer:S,polkadotXcm:X,xcmPallet:v}}var y=class{api;call;type="Substrate";constructor({api:r,call:t}){this.api=r,this.call=t}};function kt(){return{assetManager:$}}function $(){return{assetTypeUnitsPerSecond:(e=1e9)=>({build:({api:r,asset:t})=>new y({api:r,call:async()=>{let n=await r.query.assetManager.assetIdType(t);if(n.isNone)throw new Error(`No asset type found for asset ${t}`);let i=n.unwrap(),s=(await r.query.assetManager.assetTypeUnitsPerSecond(i)).unwrapOrDefault().toBigInt();return BigInt(e)*s/BigInt(10**12)}})})}}export{Z as AssetMinBuilder,wr as BalanceBuilder,u as BaseConfig,p as CallType,xr as ContractBuilder,m as ContractConfig,At as ExtrinsicBuilder,a as ExtrinsicConfig,kt as FeeBuilder,c as SubstrateQueryConfig,A as XcmVersion,_ as evm,K as substrate};
1
+ import"@polkadot/api-augment";var x=(t=>(t.Evm="Evm",t.Substrate="Substrate",t))(x||{});var l=class{module;func;type;constructor({module:r,func:t,type:n}){this.module=r,this.func=t,this.type=n}};var c=class extends l{args;transform;constructor({args:r=[],transform:t,type:n="Substrate",...i}){super({...i,type:n}),this.args=r,this.transform=t}};function sr(){return{assetRegistry:W,assets:_}}function W(){let e="assetRegistry";return{assetMetadatas:()=>({build:({asset:r})=>new c({module:e,func:"assetMetadatas",args:[r],transform:async t=>t.unwrapOrDefault().minimalBalance.toBigInt()})}),currencyMetadatas:()=>({build:({asset:r})=>new c({module:e,func:"currencyMetadatas",args:[r],transform:async t=>t.unwrapOrDefault().minimalBalance.toBigInt()})})}}function _(){return{asset:()=>({build:({asset:e})=>new c({module:"assets",func:"asset",args:[e],transform:async r=>r.unwrapOrDefault().minBalance.toBigInt()})})}}import{isString as V}from"@polkadot/util";import{evmToAddress as $}from"@polkadot/util-crypto";import{formatAssetIdToERC20 as b}from"@moonbeam-network/xcm-utils";import{isString as A,u8aToHex as I}from"@polkadot/util";import{decodeAddress as T,evmToAddress as R}from"@polkadot/util-crypto";var m=class extends l{args;address;constructor({args:r,address:t,...n}){super({...n,type:"Evm"}),this.args=r,this.address=t}};var h=18446744073709551615n;function v(){return{transfer:(e=h)=>({build:({address:r,amount:t,asset:n,destination:i})=>new m({args:[A(n)?b(n):n,t,w(r,i),e],func:"transfer",module:"Xtokens"})}),transferMultiCurrencies:(e=h)=>({build:({address:r,amount:t,asset:n,destination:i,fee:o,feeAsset:s})=>new m({args:[[[A(n)?b(n):n,t],[A(s)?b(s):s,o]],1,w(r,i),e],func:"transferMultiCurrencies",module:"Xtokens"})}),transferWithEvmTo32:(e=h)=>({build:({address:r,amount:t,asset:n,destination:i})=>{let o=z(r,i);return new m({args:[A(n)?b(n):n,t,o,e],func:"transfer",module:"Xtokens"})}})}}function z(e,r){let t="01",n=R(e),i=`0x${t}${I(T(n),-1,!1)}00`;return[1,r.parachainId?[`0x0000000${r.parachainId.toString(16)}`,i]:[i]]}function w(e,r){let n=`0x${r.isEvmParachain()?"03":"01"}${I(T(e),-1,!1)}00`;return[1,r.parachainId?[`0x0000000${r.parachainId.toString(16)}`,n]:[n]]}function hr(){return{Xtokens:v}}function kr(){return{evm:q,substrate:H}}function q(){return{erc20:G}}function H(){return{assets:U,system:N,tokens:Q}}function G(){return{build:({address:e,asset:r})=>{if(!r||!V(r))throw new Error(`Invalid contract address: ${r}`);return new m({address:r,args:[e],func:"balanceOf",module:"Erc20"})}}}function U(){return{account:()=>({build:({address:e,asset:r})=>new c({module:"assets",func:"account",args:[r,e],transform:async t=>t.unwrapOrDefault().balance.toBigInt()})})}}function N(){return{account:()=>({build:({address:e})=>new c({module:"system",func:"account",args:[e],transform:async r=>{let t=r.data,n=t.miscFrozen??t.frozen;return BigInt(t.free.sub(n).toString())}})}),accountEquilibrium:()=>({build:({address:e,asset:r})=>new c({module:"system",func:"account",args:[e],transform:async t=>{var s;if(t.data.isEmpty)return 0n;let n=t.data.toJSON(),i;if(Array.isArray(n)&&(i=n),Array.isArray((s=n==null?void 0:n.v0)==null?void 0:s.balance)&&(i=n.v0.balance),!i)throw new Error("Can't get balance from Equilibrium chain");let o=i.find(([y])=>y===r);return o?BigInt(o[1].positive):0n}})}),accountEvmTo32:()=>({build:({address:e})=>{let r=$(e);return new c({module:"system",func:"account",args:[r],transform:async t=>{let n=t.data,i=n.miscFrozen??n.frozen;return BigInt(n.free.sub(i).toString())}})}})}}function Q(){return{accounts:()=>({build:({address:e,asset:r})=>new c({module:"tokens",func:"accounts",args:[e,r],transform:async({free:t,frozen:n})=>BigInt(t.sub(n).toString())})})}}import{getTypeDef as K}from"@polkadot/types";import{u8aToHex as L}from"@polkadot/util";import{decodeAddress as J}from"@polkadot/util-crypto";var E=(n=>(n.v1="V1",n.v2="V2",n.v3="V3",n))(E||{});function f(e,r=0){if(!e)return"V1";let{type:t}=e.meta.args[r],n=e.meta.registry.createType(t.toString()),i=K(n==null?void 0:n.toRawType());if(!i.sub)return"V1";let o=Array.isArray(i.sub)?i.sub.map(s=>s.name):[i.sub.name];if(o.includes("V1"))return"V1";if(o.includes("V2"))return"V2";if(o.includes("V3"))return"V3";throw new Error("Can't find Xcm version")}function u(e){return e.length===42&&e.startsWith("0x")?{AccountKey20:{key:e}}:{AccountId32:{id:L(J(e)),network:null}}}var a=class extends l{getArgs;constructor({getArgs:r,...t}){super({...t,type:"Substrate"}),this.getArgs=r}};var X="eqBalances";function S(){return{xcmTransfer:()=>({build:({address:e,amount:r,asset:t,destination:n})=>new a({module:X,func:"xcmTransfer",getArgs:()=>[t,r,{parents:1,interior:{X2:[{Parachain:n.parachainId},u(e)]}},"ThisAccWillPay"]})}),transferXcm:()=>({build:({address:e,amount:r,asset:t,destination:n,fee:i,feeAsset:o})=>new a({module:X,func:"transferXcm",getArgs:()=>{let s=r-i>0n?r-i:0n;return[[t,t===o?s:r],[o,i],{parents:1,interior:{X2:[{Parachain:n.parachainId},u(e)]}}]}})})}}function p({asset:e,address:r,destination:t,func:n,parents:i=1,feeIndex:o=0}){let s=f(n);return[{[s]:{parents:i,interior:{X1:{Parachain:t.parachainId}}}},{[s]:{parents:0,interior:{X1:u(r)}}},{[s]:e},o,"Unlimited"]}var B="polkadotXcm";function D(){return{limitedReserveTransferAssets:()=>{let e="limitedReserveTransferAssets";return{here:()=>({build:r=>new a({module:B,func:e,getArgs:t=>p({...r,func:t,asset:[{id:{Concrete:{parents:0,interior:"Here"}},fun:{Fungible:r.amount}}]})})}),X1:()=>({build:r=>new a({module:B,func:e,getArgs:t=>p({...r,func:t,asset:[{id:{Concrete:{parents:0,interior:{X1:{PalletInstance:r.palletInstance}}}},fun:{Fungible:r.amount}}]})})}),X2:()=>({build:r=>new a({module:B,func:e,getArgs:t=>{let n=!!r.feeAsset&&r.asset!==r.feeAsset,i=[{id:{Concrete:{parents:0,interior:{X2:[{PalletInstance:r.palletInstance},{GeneralIndex:r.asset}]}}},fun:{Fungible:r.amount}}];return n&&i.push({id:{Concrete:{parents:0,interior:{X2:[{PalletInstance:r.palletInstance},{GeneralIndex:r.feeAsset}]}}},fun:{Fungible:r.fee}}),p({...r,func:t,asset:i,feeIndex:n?1:0})}})})}},limitedReserveWithdrawAssets:()=>{let e="limitedReserveWithdrawAssets";return{X2:()=>({build:r=>new a({module:B,func:e,getArgs:t=>p({...r,func:t,asset:[{id:{Concrete:{parents:1,interior:{X2:[{Parachain:r.destination.parachainId},{PalletInstance:r.palletInstance}]}}},fun:{Fungible:r.amount}}]})})})}}}}function d(){return"Unlimited"}function g(e,r,t){return{[e]:{parents:1,interior:{X2:[{Parachain:t.parachainId},u(r)]}}}}var C="xTokens";function F(){return{transfer:()=>({build:({address:e,amount:r,asset:t,destination:n})=>new a({module:C,func:"transfer",getArgs:i=>{let o=f(i,2);return[t,r,g(o,e,n),d()]}})}),transferMultiAsset:e=>{let r="transferMultiasset";return{here:()=>({build:({address:t,amount:n,destination:i})=>new a({module:C,func:r,getArgs:o=>{let s=f(o,1);return[{[s]:{id:{Concrete:{parents:0,interior:"Here"}},fun:{Fungible:n}}},g(s,t,i),d()]}})}),X1:()=>({build:({address:t,amount:n,destination:i})=>new a({module:C,func:r,getArgs:o=>{let s=f(o,1);return[{[s]:{id:{Concrete:{parents:1,interior:{X1:{Parachain:e}}}},fun:{Fungible:n}}},g(s,t,i),d()]}})}),X2:()=>({build:({address:t,amount:n,asset:i,destination:o})=>new a({module:C,func:r,getArgs:s=>{let y=f(s,1);return[{[y]:{id:{Concrete:{parents:1,interior:{X2:[{Parachain:e},{GeneralKey:i}]}}},fun:{Fungible:n}}},g(y,t,o),d()]}})})}},transferMultiCurrencies:()=>({build:({address:e,amount:r,asset:t,destination:n,fee:i,feeAsset:o})=>new a({module:C,func:"transferMulticurrencies",getArgs:()=>[[[t,r],[o,i]],1,g("V3",e,n),d()]})})}}var k="xTransfer";function M(){return{transfer:()=>{let e="transfer";return{here:()=>({build:({address:r,amount:t,destination:n})=>new a({module:k,func:e,getArgs:()=>[{id:{Concrete:{parents:0,interior:"Here"}},fun:{Fungible:t}},{parents:1,interior:{X2:[{Parachain:n.parachainId},u(r)]}},{refTime:5e9,proofSize:0}]})}),X2:()=>({build:({address:r,amount:t,destination:n,palletInstance:i})=>new a({module:k,func:e,getArgs:()=>[{id:{Concrete:{parents:1,interior:{X2:[{Parachain:n.parachainId},{PalletInstance:i}]}}},fun:{Fungible:t||1n}},{parents:1,interior:{X2:[{Parachain:n.parachainId},u(r)]}},{refTime:5e9,proofSize:0}]})})}}}}var j="xcmPallet";function O(){return{limitedReserveTransferAssets:(e=1)=>{let r="limitedReserveTransferAssets";return{here:()=>({build:t=>new a({module:j,func:r,getArgs:n=>p({...t,parents:e,func:n,asset:[{id:{Concrete:{parents:0,interior:"Here"}},fun:{Fungible:t.amount}}]})})})}}}}function kt(){return{eqBalances:S,xTokens:F,xTransfer:M,polkadotXcm:D,xcmPallet:O}}var P=class{api;call;type="Substrate";constructor({api:r,call:t}){this.api=r,this.call=t}};function qt(){return{assetManager:Y}}function Y(){return{assetTypeUnitsPerSecond:(e=1e9)=>({build:({api:r,asset:t})=>new P({api:r,call:async()=>{let n=await r.query.assetManager.assetIdType(t);if(n.isNone)throw new Error(`No asset type found for asset ${t}`);let i=n.unwrap(),s=(await r.query.assetManager.assetTypeUnitsPerSecond(i)).unwrapOrDefault().toBigInt();return BigInt(e)*s/BigInt(10**12)}})})}}export{sr as AssetMinBuilder,kr as BalanceBuilder,l as BaseConfig,x as CallType,hr as ContractBuilder,m as ContractConfig,kt as ExtrinsicBuilder,a as ExtrinsicConfig,qt as FeeBuilder,c as SubstrateQueryConfig,E as XcmVersion,q as evm,H as substrate};
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/builder.interfaces.ts","../src/types/BaseConfig.ts","../src/types/substrate/SubstrateQueryConfig.ts","../src/asset-min/AssetMinBuilder.ts","../src/balance/BalanceBuilder.ts","../src/contract/contracts/Xtokens/Xtokens.ts","../src/contract/ContractConfig.ts","../src/contract/ContractBuilder.ts","../src/extrinsic/ExtrinsicConfig.ts","../src/extrinsic/pallets/eqBalances/eqBalances.ts","../src/extrinsic/ExtrinsicBuilder.utils.ts","../src/extrinsic/ExtrinsicBuilder.interfaces.ts","../src/extrinsic/pallets/polkadotXcm/polkadotXcm.util.ts","../src/extrinsic/pallets/polkadotXcm/polkadotXcm.ts","../src/extrinsic/pallets/xTokens/xTokens.utils.ts","../src/extrinsic/pallets/xTokens/xTokens.ts","../src/extrinsic/pallets/xTransfer/xTransfer.ts","../src/extrinsic/pallets/xcmPallet/xcmPallet.ts","../src/extrinsic/ExtrinsicBuilder.ts","../src/types/substrate/SubstrateCallConfig.ts","../src/fee/FeeBuilder.ts"],"sourcesContent":["import '@polkadot/api-augment';\n\nexport * from './asset-min';\nexport * from './balance';\nexport * from './builder.interfaces';\nexport * from './contract';\nexport * from './extrinsic';\nexport * from './fee';\nexport * from './types/BaseConfig';\nexport * from './types/substrate/SubstrateQueryConfig';\n","export enum CallType {\n Evm = 'Evm',\n Substrate = 'Substrate',\n}\n","import { CallType } from '../builder.interfaces';\n\nexport interface BaseConfigConstructorParams {\n module: string;\n func: string;\n type: CallType;\n}\n\nexport class BaseConfig {\n readonly module: string;\n\n readonly func: string;\n\n readonly type: CallType;\n\n constructor({ module, func, type }: BaseConfigConstructorParams) {\n this.module = module;\n this.func = func;\n this.type = type;\n }\n}\n","import { SetOptional } from 'type-fest';\nimport { CallType } from '../../builder.interfaces';\nimport { BaseConfig, BaseConfigConstructorParams } from '../BaseConfig';\n\nexport interface QueryConfigConstructorParams\n extends SetOptional<BaseConfigConstructorParams, 'type'> {\n args?: any[];\n transform: (data: any) => Promise<bigint>;\n}\n\nexport class SubstrateQueryConfig extends BaseConfig {\n readonly args: any[];\n\n readonly transform: (data: any) => Promise<bigint>;\n\n constructor({\n args = [],\n transform,\n type = CallType.Substrate,\n ...other\n }: QueryConfigConstructorParams) {\n super({ ...other, type });\n\n this.args = args;\n this.transform = transform;\n }\n}\n","/* eslint-disable sort-keys */\n/* eslint-disable @typescript-eslint/no-use-before-define */\n\nimport { Option } from '@polkadot/types';\nimport { PalletAssetsAssetDetails } from '@polkadot/types/lookup';\nimport { SubstrateQueryConfig } from '../types/substrate/SubstrateQueryConfig';\nimport { AssetMinConfigBuilder } from './AssetMinBuilder.interfaces';\n\nexport function AssetMinBuilder() {\n return {\n assetRegistry,\n assets,\n };\n}\n\nfunction assetRegistry() {\n const pallet = 'assetRegistry';\n return {\n assetMetadatas: (): AssetMinConfigBuilder => ({\n build: ({ asset }) =>\n new SubstrateQueryConfig({\n module: pallet,\n func: 'assetMetadatas',\n args: [asset],\n transform: async (response: Option<any>): Promise<bigint> =>\n response.unwrapOrDefault().minimalBalance.toBigInt(),\n }),\n }),\n currencyMetadatas: (): AssetMinConfigBuilder => ({\n build: ({ asset }) =>\n new SubstrateQueryConfig({\n module: pallet,\n func: 'currencyMetadatas',\n args: [asset],\n transform: async (response: Option<any>): Promise<bigint> =>\n response.unwrapOrDefault().minimalBalance.toBigInt(),\n }),\n }),\n };\n}\n\nfunction assets() {\n return {\n asset: (): AssetMinConfigBuilder => ({\n build: ({ asset }) =>\n new SubstrateQueryConfig({\n module: 'assets',\n func: 'asset',\n args: [asset],\n transform: async (\n response: Option<PalletAssetsAssetDetails>,\n ): Promise<bigint> =>\n response.unwrapOrDefault().minBalance.toBigInt(),\n }),\n }),\n };\n}\n","/* eslint-disable sort-keys */\n/* eslint-disable @typescript-eslint/no-use-before-define */\n\nimport { Option } from '@polkadot/types';\nimport {\n FrameSystemAccountInfo,\n PalletAssetsAssetAccount,\n PalletBalancesAccountData,\n} from '@polkadot/types/lookup';\nimport { isString } from '@polkadot/util';\nimport { ContractConfig } from '../contract';\nimport { SubstrateQueryConfig } from '../types/substrate/SubstrateQueryConfig';\nimport {\n BalanceConfigBuilder,\n EquilibriumSystemBalanceData,\n PalletBalancesAccountDataOld,\n TokensPalletAccountData,\n} from './BalanceBuilder.interfaces';\n\nexport function BalanceBuilder() {\n return {\n evm,\n substrate,\n };\n}\n\nexport function evm() {\n return {\n erc20,\n };\n}\n\nexport function substrate() {\n return {\n assets,\n system,\n tokens,\n };\n}\n\nfunction erc20(): BalanceConfigBuilder {\n return {\n build: ({ address, asset }) => {\n if (!asset || !isString(asset)) {\n throw new Error(`Invalid contract address: ${asset}`);\n }\n\n return new ContractConfig({\n address: asset,\n args: [address],\n func: 'balanceOf',\n module: 'Erc20',\n });\n },\n };\n}\n\nfunction assets() {\n return {\n account: (): BalanceConfigBuilder => ({\n build: ({ address, asset }) =>\n new SubstrateQueryConfig({\n module: 'assets',\n func: 'account',\n args: [asset, address],\n transform: async (\n response: Option<PalletAssetsAssetAccount>,\n ): Promise<bigint> => response.unwrapOrDefault().balance.toBigInt(),\n }),\n }),\n };\n}\n\nfunction system() {\n return {\n account: (): BalanceConfigBuilder => ({\n build: ({ address }) =>\n new SubstrateQueryConfig({\n module: 'system',\n func: 'account',\n args: [address],\n transform: async (\n response: FrameSystemAccountInfo,\n ): Promise<bigint> => {\n const balance = response.data as PalletBalancesAccountData &\n PalletBalancesAccountDataOld;\n const frozen = balance.miscFrozen ?? balance.frozen;\n\n return BigInt(balance.free.sub(frozen).toString());\n },\n }),\n }),\n accountEquilibrium: (): BalanceConfigBuilder => ({\n build: ({ address, asset }) =>\n new SubstrateQueryConfig({\n module: 'system',\n func: 'account',\n args: [address],\n transform: async (response): Promise<bigint> => {\n if (response.data.isEmpty) {\n return 0n;\n }\n\n const res = response.data.toJSON() as unknown;\n let balances: EquilibriumSystemBalanceData | undefined;\n\n if (Array.isArray(res)) {\n balances = res;\n }\n\n if (Array.isArray((res as any)?.v0?.balance)) {\n balances = (res as any).v0.balance;\n }\n\n if (!balances) {\n throw new Error(\"Can't get balance from Equilibrium chain\");\n }\n\n const balance = balances.find(([assetId]) => assetId === asset);\n\n if (!balance) {\n return 0n;\n }\n\n return BigInt(balance[1].positive);\n },\n }),\n }),\n };\n}\n\nfunction tokens() {\n return {\n accounts: (): BalanceConfigBuilder => ({\n build: ({ address, asset }) =>\n new SubstrateQueryConfig({\n module: 'tokens',\n func: 'accounts',\n args: [address, asset],\n transform: async ({\n free,\n frozen,\n }: TokensPalletAccountData): Promise<bigint> =>\n BigInt(free.sub(frozen).toString()),\n }),\n }),\n };\n}\n","/* eslint-disable @typescript-eslint/no-use-before-define */\nimport { AnyChain } from '@moonbeam-network/xcm-types';\nimport { formatAssetIdToERC20 } from '@moonbeam-network/xcm-utils';\nimport { isString, u8aToHex } from '@polkadot/util';\nimport { decodeAddress } from '@polkadot/util-crypto';\nimport { ContractConfigBuilder } from '../../ContractBuilder.interfaces';\nimport { ContractConfig } from '../../ContractConfig';\n\nexport function Xtokens() {\n return {\n transfer: (weight = 4_000_000_000): ContractConfigBuilder => ({\n build: ({ address, amount, asset, destination }) =>\n new ContractConfig({\n args: [\n isString(asset) ? formatAssetIdToERC20(asset) : asset,\n amount,\n getDestinationMultilocation(address, destination),\n weight,\n ],\n func: 'transfer',\n module: 'Xtokens',\n }),\n }),\n transferMultiCurrencies: (\n weight = 4_000_000_000,\n ): ContractConfigBuilder => ({\n build: ({ address, amount, asset, destination, fee, feeAsset }) =>\n new ContractConfig({\n args: [\n [\n [isString(asset) ? formatAssetIdToERC20(asset) : asset, amount],\n [\n isString(feeAsset) ? formatAssetIdToERC20(feeAsset) : feeAsset,\n fee,\n ],\n ],\n 1, // index of the fee asset\n getDestinationMultilocation(address, destination),\n weight,\n ],\n func: 'transferMultiCurrencies',\n module: 'Xtokens',\n }),\n }),\n };\n}\n\ntype DestinationMultilocation = [\n /**\n * 1 - if transaction is going through a relay chain\n */\n 1,\n (\n | [\n /**\n * example '0x00000007DC'\n * 7DC - parachain id in hex\n * can be found here:\n * - https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fkusama-rpc.polkadot.io#/parachains\n * - https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frpc.polkadot.io#/parachains\n */\n string,\n /**\n * example '0x01%account%00',\n * enum = 01 (AccountId32)\n * networkId = 00 (any)\n */\n string,\n ]\n | [\n /**\n * example '0x01%account%00',\n * enum = 01 (AccountId32)\n * networkId = 00 (any)\n */\n string,\n ]\n ),\n];\n\nfunction getDestinationMultilocation(\n address: string,\n destination: AnyChain,\n): DestinationMultilocation {\n /* \n 01: AccountId32\n 03: AccountKey20\n https://docs.moonbeam.network/builders/interoperability/xcm/xc20/xtokens/#building-the-precompile-multilocation\n */\n const accountType = destination.isEvmParachain() ? '03' : '01';\n const acc = `0x${accountType}${u8aToHex(\n decodeAddress(address),\n -1,\n false,\n )}00`;\n\n return [\n 1,\n destination.parachainId\n ? [`0x0000000${destination.parachainId.toString(16)}`, acc]\n : [acc],\n ];\n}\n","import { CallType } from '../builder.interfaces';\nimport { BaseConfig, BaseConfigConstructorParams } from '../types/BaseConfig';\n\nexport interface ContractConfigConstructorParams\n extends Omit<BaseConfigConstructorParams, 'type'> {\n args: any[];\n address?: string;\n}\n\nexport class ContractConfig extends BaseConfig {\n readonly args: any[];\n\n readonly address?: string;\n\n constructor({ args, address, ...other }: ContractConfigConstructorParams) {\n super({ ...other, type: CallType.Evm });\n\n this.args = args;\n this.address = address;\n }\n}\n","import { Xtokens } from './contracts/Xtokens';\n\nexport function ContractBuilder() {\n return {\n Xtokens,\n };\n}\n","import { SubmittableExtrinsicFunction } from '@polkadot/api/types';\nimport { CallType } from '../builder.interfaces';\nimport { BaseConfig, BaseConfigConstructorParams } from '../types/BaseConfig';\n\nexport interface ExtrinsicConfigConstructorParams\n extends Omit<BaseConfigConstructorParams, 'type'> {\n getArgs: (func?: SubmittableExtrinsicFunction<'promise'>) => any[];\n}\n\nexport class ExtrinsicConfig extends BaseConfig {\n getArgs: (func?: SubmittableExtrinsicFunction<'promise'>) => any[];\n\n constructor({ getArgs, ...other }: ExtrinsicConfigConstructorParams) {\n super({ ...other, type: CallType.Substrate });\n\n this.getArgs = getArgs;\n }\n}\n","/* eslint-disable sort-keys */\nimport { ExtrinsicConfigBuilder } from '../../ExtrinsicBuilder.interfaces';\nimport { ExtrinsicConfig } from '../../ExtrinsicConfig';\n\nexport enum EqBalancesFee {\n SovereignAccWillPay = 'SovereignAccWillPay',\n TargetChainAccWillPay = 'TargetChainAccWillPay',\n ThisAccWillPay = 'ThisAccWillPay',\n}\n\nconst pallet = 'eqBalances';\n\nexport function eqBalances() {\n return {\n xcmTransfer: (): ExtrinsicConfigBuilder => ({\n build: ({ address, amount, asset, destination }) =>\n new ExtrinsicConfig({\n module: pallet,\n func: 'xcmTransfer',\n getArgs: () => [\n asset,\n amount,\n {\n parents: 1,\n interior: {\n X2: [\n {\n Parachain: destination.parachainId,\n },\n {\n AccountKey20: {\n network: 'Any',\n key: address,\n },\n },\n ],\n },\n },\n EqBalancesFee.ThisAccWillPay,\n ],\n }),\n }),\n transferXcm: (): ExtrinsicConfigBuilder => ({\n build: ({ address, amount, asset, destination, fee, feeAsset }) =>\n new ExtrinsicConfig({\n module: pallet,\n func: 'transferXcm',\n getArgs: () => {\n const amountWithoutFee = amount - fee > 0n ? amount - fee : 0n;\n\n return [\n [asset, asset === feeAsset ? amountWithoutFee : amount],\n [feeAsset, fee],\n {\n parents: 1,\n interior: {\n X2: [\n {\n Parachain: destination.parachainId,\n },\n {\n AccountKey20: {\n network: 'Any',\n key: address,\n },\n },\n ],\n },\n },\n ];\n },\n }),\n }),\n };\n}\n","import { SubmittableExtrinsicFunction } from '@polkadot/api/types';\nimport { getTypeDef } from '@polkadot/types';\nimport { XcmVersion } from './ExtrinsicBuilder.interfaces';\n\nexport function getExtrinsicArgumentVersion(\n func?: SubmittableExtrinsicFunction<'promise'>,\n index: number = 0,\n): XcmVersion {\n if (!func) return XcmVersion.v1;\n\n const { type } = func.meta.args[index];\n const instance = func.meta.registry.createType(type.toString());\n const raw = getTypeDef(instance?.toRawType());\n\n if (!raw.sub) {\n return XcmVersion.v1;\n }\n\n const versions = Array.isArray(raw.sub)\n ? raw.sub.map((x) => x.name)\n : [raw.sub.name];\n\n if (versions.includes(XcmVersion.v1)) {\n return XcmVersion.v1;\n }\n\n if (versions.includes(XcmVersion.v2)) {\n return XcmVersion.v2;\n }\n\n if (versions.includes(XcmVersion.v3)) {\n return XcmVersion.v3;\n }\n\n throw new Error(\"Can't find Xcm version\");\n}\n","import { AnyChain, ChainAssetId } from '@moonbeam-network/xcm-types';\nimport { ExtrinsicConfig } from './ExtrinsicConfig';\n\nexport interface ExtrinsicConfigBuilder {\n build: (params: ExtrinsicConfigBuilderPrams) => ExtrinsicConfig;\n}\n\nexport interface ExtrinsicConfigBuilderPrams {\n address: string;\n amount: bigint;\n asset: ChainAssetId;\n destination: AnyChain;\n fee: bigint;\n feeAsset: ChainAssetId;\n palletInstance?: number;\n source: AnyChain;\n}\n\nexport enum XcmVersion {\n v1 = 'V1',\n v2 = 'V2',\n v3 = 'V3',\n}\n\nexport type Parents = 0 | 1;\n","/* eslint-disable sort-keys */\nimport { SubmittableExtrinsicFunction } from '@polkadot/api/types';\nimport {\n ExtrinsicConfigBuilderPrams,\n Parents,\n} from '../../ExtrinsicBuilder.interfaces';\nimport { getExtrinsicArgumentVersion } from '../../ExtrinsicBuilder.utils';\n\nexport interface GetExtrinsicParams extends ExtrinsicConfigBuilderPrams {\n asset: any;\n func?: SubmittableExtrinsicFunction<'promise'>;\n parents?: Parents;\n}\n\nexport function getPolkadotXcmExtrinsicArgs({\n asset,\n address,\n destination,\n func,\n parents = 1,\n}: GetExtrinsicParams): any[] {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n const version = getExtrinsicArgumentVersion(func);\n\n return [\n {\n [version]: {\n parents,\n interior: {\n X1: {\n Parachain: destination.parachainId,\n },\n },\n },\n },\n {\n [version]: {\n parents: 0,\n interior: {\n X1: {\n AccountKey20: {\n network: 'Any',\n key: address,\n },\n },\n },\n },\n },\n {\n [version]: asset,\n },\n 0,\n 'Unlimited',\n ];\n}\n","/* eslint-disable sort-keys */\nimport { ExtrinsicConfigBuilder } from '../../ExtrinsicBuilder.interfaces';\nimport { ExtrinsicConfig } from '../../ExtrinsicConfig';\nimport { getPolkadotXcmExtrinsicArgs } from './polkadotXcm.util';\n\nconst pallet = 'polkadotXcm';\n\nexport function polkadotXcm() {\n return {\n limitedReserveTransferAssets: () => {\n const func = 'limitedReserveTransferAssets';\n\n return {\n here: (): ExtrinsicConfigBuilder => ({\n build: (params) =>\n new ExtrinsicConfig({\n module: pallet,\n func,\n getArgs: (extrinsicFunction) =>\n getPolkadotXcmExtrinsicArgs({\n ...params,\n func: extrinsicFunction,\n asset: [\n {\n id: {\n Concrete: {\n parents: 0,\n interior: 'Here',\n },\n },\n fun: {\n Fungible: params.amount,\n },\n },\n ],\n }),\n }),\n }),\n X1: (): ExtrinsicConfigBuilder => ({\n build: (params) =>\n new ExtrinsicConfig({\n module: pallet,\n func,\n getArgs: (extrinsicFunction) =>\n getPolkadotXcmExtrinsicArgs({\n ...params,\n func: extrinsicFunction,\n asset: [\n {\n id: {\n Concrete: {\n parents: 0,\n interior: {\n X1: {\n PalletInstance: 5,\n },\n },\n },\n },\n fun: {\n Fungible: params.amount,\n },\n },\n ],\n }),\n }),\n }),\n X2: (): ExtrinsicConfigBuilder => ({\n build: (params) =>\n new ExtrinsicConfig({\n module: pallet,\n func,\n getArgs: (extrinsicFunction) =>\n getPolkadotXcmExtrinsicArgs({\n ...params,\n func: extrinsicFunction,\n asset: [\n {\n id: {\n Concrete: {\n parents: 0,\n interior: {\n X2: [\n {\n PalletInstance: params.palletInstance,\n },\n {\n GeneralIndex: params.asset,\n },\n ],\n },\n },\n },\n fun: {\n Fungible: params.amount,\n },\n },\n ],\n }),\n }),\n }),\n };\n },\n limitedReserveWithdrawAssets: () => {\n const func = 'limitedReserveWithdrawAssets';\n\n return {\n X2: (): ExtrinsicConfigBuilder => ({\n build: (params) =>\n new ExtrinsicConfig({\n module: pallet,\n func,\n getArgs: (extrinsicFunction) =>\n getPolkadotXcmExtrinsicArgs({\n ...params,\n func: extrinsicFunction,\n asset: [\n {\n id: {\n Concrete: {\n parents: 1,\n interior: {\n X2: [\n {\n Parachain: params.destination.parachainId,\n },\n {\n PalletInstance: params.palletInstance,\n },\n ],\n },\n },\n },\n fun: {\n Fungible: params.amount,\n },\n },\n ],\n }),\n }),\n }),\n };\n },\n };\n}\n","import { SubmittableExtrinsicFunction } from '@polkadot/api/types';\nimport { XTokensWeightLimit } from './xTokens.interfaces';\n\n/**\n * Workaround for weight parameter type change in xTokens pallet\n * https://github.com/open-web3-stack/open-runtime-module-library/pull/841\n */\nexport function getWeight(\n weight: number,\n func?: SubmittableExtrinsicFunction<'promise'>,\n): XTokensWeightLimit {\n const type = func?.meta.args.at(-1)?.type;\n\n if (!type) {\n return weight;\n }\n\n if (type.eq('XcmV2WeightLimit')) {\n return {\n Limited: weight,\n };\n }\n\n if (type.eq('XcmV3WeightLimit')) {\n return 'Unlimited';\n }\n\n return weight;\n}\n","/* eslint-disable sort-keys */\nimport {\n ExtrinsicConfigBuilder,\n XcmVersion,\n} from '../../ExtrinsicBuilder.interfaces';\nimport { getExtrinsicArgumentVersion } from '../../ExtrinsicBuilder.utils';\nimport { ExtrinsicConfig } from '../../ExtrinsicConfig';\nimport { getWeight } from './xTokens.utils';\n\nconst pallet = 'xTokens';\n\nexport function xTokens() {\n return {\n transfer: (): ExtrinsicConfigBuilder => ({\n build: ({ address, amount, asset, destination, source }) =>\n new ExtrinsicConfig({\n module: pallet,\n func: 'transfer',\n getArgs: (func) => {\n const version = getExtrinsicArgumentVersion(func, 2);\n\n return [\n asset,\n amount,\n {\n [version]: {\n parents: 1,\n interior: {\n X2: [\n {\n Parachain: destination.parachainId,\n },\n {\n AccountKey20: {\n network: 'Any',\n key: address,\n },\n },\n ],\n },\n },\n },\n getWeight(source.weight, func),\n ];\n },\n }),\n }),\n transferMultiAsset: (originParachainId: number) => {\n const funcName = 'transferMultiasset';\n\n return {\n X1: (): ExtrinsicConfigBuilder => ({\n build: ({ address, amount, destination }) =>\n new ExtrinsicConfig({\n module: pallet,\n func: funcName,\n getArgs: (func) => {\n const version = getExtrinsicArgumentVersion(func, 1);\n\n return [\n {\n [version]: {\n id: {\n Concrete: {\n parents: 1,\n interior: {\n X1: {\n Parachain: originParachainId,\n },\n },\n },\n },\n fun: {\n Fungible: amount,\n },\n },\n },\n {\n [version]: {\n parents: 1,\n interior: {\n X2: [\n {\n Parachain: destination.parachainId,\n },\n {\n AccountKey20: {\n network: 'Any',\n key: address,\n },\n },\n ],\n },\n },\n },\n 'Unlimited',\n ];\n },\n }),\n }),\n X2: (): ExtrinsicConfigBuilder => ({\n build: ({ address, amount, asset, destination, source }) =>\n new ExtrinsicConfig({\n module: pallet,\n func: funcName,\n getArgs: (func) => {\n const version = getExtrinsicArgumentVersion(func, 1);\n\n return [\n {\n [version]: {\n id: {\n Concrete: {\n parents: 1,\n interior: {\n X2: [\n {\n Parachain: originParachainId,\n },\n {\n GeneralKey: asset,\n },\n ],\n },\n },\n },\n fun: {\n Fungible: amount,\n },\n },\n },\n {\n [version]: {\n parents: 1,\n interior: {\n X2: [\n {\n Parachain: destination.parachainId,\n },\n {\n AccountKey20: {\n network: 'Any',\n key: address,\n },\n },\n ],\n },\n },\n },\n getWeight(source.weight, func),\n ];\n },\n }),\n }),\n };\n },\n transferMultiCurrencies: (): ExtrinsicConfigBuilder => ({\n build: ({ address, amount, asset, destination, fee, feeAsset }) =>\n new ExtrinsicConfig({\n module: pallet,\n func: 'transferMulticurrencies',\n getArgs: () => [\n [\n [asset, amount],\n [feeAsset, fee],\n ],\n 1,\n {\n [XcmVersion.v3]: {\n parents: 1,\n interior: {\n X2: [\n {\n Parachain: destination.parachainId,\n },\n {\n AccountKey20: {\n key: address,\n },\n },\n ],\n },\n },\n },\n 'Unlimited',\n ],\n }),\n }),\n };\n}\n","/* eslint-disable sort-keys */\nimport { ExtrinsicConfigBuilder } from '../../ExtrinsicBuilder.interfaces';\nimport { ExtrinsicConfig } from '../../ExtrinsicConfig';\n\nconst pallet = 'xTransfer';\n\nexport function xTransfer() {\n return {\n transfer: () => {\n const method = 'transfer';\n\n return {\n here: (): ExtrinsicConfigBuilder => ({\n build: ({ address, amount, destination }) =>\n new ExtrinsicConfig({\n module: pallet,\n func: method,\n getArgs: () => [\n {\n id: {\n Concrete: {\n parents: 0,\n interior: 'Here',\n },\n },\n fun: {\n Fungible: amount,\n },\n },\n {\n parents: 1,\n interior: {\n X2: [\n {\n Parachain: destination.parachainId,\n },\n {\n AccountKey20: {\n key: address,\n },\n },\n ],\n },\n },\n {\n refTime: 5_000_000_000,\n proofSize: 0,\n },\n ],\n }),\n }),\n X2: (): ExtrinsicConfigBuilder => ({\n build: ({ address, amount, destination, palletInstance }) =>\n new ExtrinsicConfig({\n module: pallet,\n func: method,\n getArgs: () => [\n {\n id: {\n Concrete: {\n parents: 1,\n interior: {\n X2: [\n {\n Parachain: destination.parachainId,\n },\n {\n PalletInstance: palletInstance,\n },\n ],\n },\n },\n },\n fun: {\n Fungible: amount || 1n,\n },\n },\n {\n parents: 1,\n interior: {\n X2: [\n {\n Parachain: destination.parachainId,\n },\n {\n AccountKey20: {\n key: address,\n },\n },\n ],\n },\n },\n {\n refTime: 5_000_000_000,\n proofSize: 0,\n },\n ],\n }),\n }),\n };\n },\n };\n}\n","/* eslint-disable sort-keys */\nimport {\n ExtrinsicConfigBuilder,\n Parents,\n} from '../../ExtrinsicBuilder.interfaces';\nimport { ExtrinsicConfig } from '../../ExtrinsicConfig';\nimport { getPolkadotXcmExtrinsicArgs } from '../polkadotXcm/polkadotXcm.util';\n\nconst pallet = 'xcmPallet';\n\nexport function xcmPallet() {\n return {\n limitedReserveTransferAssets: (parents: Parents = 1) => {\n const func = 'limitedReserveTransferAssets';\n\n return {\n here: (): ExtrinsicConfigBuilder => ({\n build: (params) =>\n new ExtrinsicConfig({\n module: pallet,\n func,\n getArgs: (extrinsicFunction) =>\n getPolkadotXcmExtrinsicArgs({\n ...params,\n parents,\n func: extrinsicFunction,\n asset: [\n {\n id: {\n Concrete: {\n parents: 0,\n interior: 'Here',\n },\n },\n fun: {\n Fungible: params.amount,\n },\n },\n ],\n }),\n }),\n }),\n };\n },\n };\n}\n","/* eslint-disable sort-keys */\n/* eslint-disable @typescript-eslint/no-use-before-define */\n\nimport { eqBalances } from './pallets/eqBalances';\nimport { polkadotXcm } from './pallets/polkadotXcm';\nimport { xTokens } from './pallets/xTokens';\nimport { xTransfer } from './pallets/xTransfer';\nimport { xcmPallet } from './pallets/xcmPallet';\n\nexport function ExtrinsicBuilder() {\n return {\n eqBalances,\n xTokens,\n xTransfer,\n polkadotXcm,\n xcmPallet,\n };\n}\n","import { ApiPromise } from '@polkadot/api';\nimport { CallType } from '../../builder.interfaces';\n\nexport interface SubstrateCallConfigConstructorParams {\n api: ApiPromise;\n call: () => Promise<bigint>;\n}\n\nexport class SubstrateCallConfig {\n readonly api: ApiPromise;\n\n readonly call: () => Promise<any>;\n\n readonly type = CallType.Substrate;\n\n constructor({ api, call }: SubstrateCallConfigConstructorParams) {\n this.api = api;\n this.call = call;\n }\n}\n","/* eslint-disable sort-keys */\n/* eslint-disable @typescript-eslint/no-use-before-define */\n\nimport { Option, u128 } from '@polkadot/types';\nimport { SubstrateCallConfig } from '../types/substrate/SubstrateCallConfig';\nimport { FeeConfigBuilder } from './FeeBuilder.interfaces';\n\nexport function FeeBuilder() {\n return {\n assetManager,\n };\n}\n\nfunction assetManager() {\n return {\n assetTypeUnitsPerSecond: (weight = 1_000_000_000): FeeConfigBuilder => ({\n build: ({ api, asset }) =>\n new SubstrateCallConfig({\n api,\n call: async (): Promise<bigint> => {\n const type = (await api.query.assetManager.assetIdType(\n asset,\n )) as unknown as Option<any>;\n\n if (type.isNone) {\n throw new Error(`No asset type found for asset ${asset}`);\n }\n\n const unwrappedType = type.unwrap();\n\n const res = (await api.query.assetManager.assetTypeUnitsPerSecond(\n unwrappedType,\n )) as unknown as Option<u128>;\n\n const unitsPerSecond = res.unwrapOrDefault().toBigInt();\n\n return (BigInt(weight) * unitsPerSecond) / BigInt(10 ** 12);\n },\n }),\n }),\n };\n}\n"],"mappings":"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,KAAAE,EACA,QAAUG,GACRC,EAA4B,CAC1B,GAAGH,EACH,KAAME,EACN,MAAO,CACL,CACE,GAAI,CACF,SAAU,CACR,QAAS,EACT,SAAU,MACZ,CACF,EACA,IAAK,CACH,SAAUF,EAAO,MACnB,CACF,CACF,CACF,CAAC,CACL,CAAC,CACL,GACA,GAAI,KAA+B,CACjC,MAAQA,GACN,IAAIC,EAAgB,CAClB,OAAQJ,EACR,KAAAE,EACA,QAAUG,GACRC,EAA4B,CAC1B,GAAGH,EACH,KAAME,EACN,MAAO,CACL,CACE,GAAI,CACF,SAAU,CACR,QAAS,EACT,SAAU,CACR,GAAI,CACF,eAAgB,CAClB,CACF,CACF,CACF,EACA,IAAK,CACH,SAAUF,EAAO,MACnB,CACF,CACF,CACF,CAAC,CACL,CAAC,CACL,GACA,GAAI,KAA+B,CACjC,MAAQA,GACN,IAAIC,EAAgB,CAClB,OAAQJ,EACR,KAAAE,EACA,QAAUG,GACRC,EAA4B,CAC1B,GAAGH,EACH,KAAME,EACN,MAAO,CACL,CACE,GAAI,CACF,SAAU,CACR,QAAS,EACT,SAAU,CACR,GAAI,CACF,CACE,eAAgBF,EAAO,cACzB,EACA,CACE,aAAcA,EAAO,KACvB,CACF,CACF,CACF,CACF,EACA,IAAK,CACH,SAAUA,EAAO,MACnB,CACF,CACF,CACF,CAAC,CACL,CAAC,CACL,EACF,CACF,EACA,6BAA8B,IAAM,CAClC,IAAMD,EAAO,+BAEb,MAAO,CACL,GAAI,KAA+B,CACjC,MAAQC,GACN,IAAIC,EAAgB,CAClB,OAAQJ,EACR,KAAAE,EACA,QAAUG,GACRC,EAA4B,CAC1B,GAAGH,EACH,KAAME,EACN,MAAO,CACL,CACE,GAAI,CACF,SAAU,CACR,QAAS,EACT,SAAU,CACR,GAAI,CACF,CACE,UAAWF,EAAO,YAAY,WAChC,EACA,CACE,eAAgBA,EAAO,cACzB,CACF,CACF,CACF,CACF,EACA,IAAK,CACH,SAAUA,EAAO,MACnB,CACF,CACF,CACF,CAAC,CACL,CAAC,CACL,EACF,CACF,CACF,CACF,CCzIO,SAASI,EAC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","names":["CallType","BaseConfig","module","func","type","SubstrateQueryConfig","BaseConfig","args","transform","type","other","AssetMinBuilder","assetRegistry","assets","pallet","asset","SubstrateQueryConfig","response","isString","formatAssetIdToERC20","isString","u8aToHex","decodeAddress","ContractConfig","BaseConfig","args","address","other","Xtokens","weight","address","amount","asset","destination","ContractConfig","isString","formatAssetIdToERC20","getDestinationMultilocation","fee","feeAsset","acc","u8aToHex","decodeAddress","ContractBuilder","Xtokens","BalanceBuilder","evm","substrate","erc20","assets","system","tokens","address","asset","isString","ContractConfig","SubstrateQueryConfig","response","balance","frozen","_a","res","balances","assetId","free","ExtrinsicConfig","BaseConfig","getArgs","other","pallet","eqBalances","address","amount","asset","destination","ExtrinsicConfig","fee","feeAsset","amountWithoutFee","getTypeDef","XcmVersion","getExtrinsicArgumentVersion","func","index","type","instance","raw","getTypeDef","versions","x","getPolkadotXcmExtrinsicArgs","asset","address","destination","func","parents","version","getExtrinsicArgumentVersion","pallet","polkadotXcm","func","params","ExtrinsicConfig","extrinsicFunction","getPolkadotXcmExtrinsicArgs","getWeight","weight","func","_a","type","pallet","xTokens","address","amount","asset","destination","source","ExtrinsicConfig","func","version","getExtrinsicArgumentVersion","getWeight","originParachainId","funcName","fee","feeAsset","pallet","xTransfer","method","address","amount","destination","ExtrinsicConfig","palletInstance","pallet","xcmPallet","parents","func","params","ExtrinsicConfig","extrinsicFunction","getPolkadotXcmExtrinsicArgs","ExtrinsicBuilder","eqBalances","xTokens","xTransfer","polkadotXcm","xcmPallet","SubstrateCallConfig","api","call","FeeBuilder","assetManager","weight","api","asset","SubstrateCallConfig","type","unwrappedType","unitsPerSecond"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/builder.interfaces.ts","../src/types/BaseConfig.ts","../src/types/substrate/SubstrateQueryConfig.ts","../src/asset-min/AssetMinBuilder.ts","../src/balance/BalanceBuilder.ts","../src/contract/contracts/Xtokens/Xtokens.ts","../src/contract/ContractConfig.ts","../src/contract/ContractBuilder.ts","../src/extrinsic/ExtrinsicBuilder.utils.ts","../src/extrinsic/ExtrinsicBuilder.interfaces.ts","../src/extrinsic/ExtrinsicConfig.ts","../src/extrinsic/pallets/eqBalances/eqBalances.ts","../src/extrinsic/pallets/polkadotXcm/polkadotXcm.util.ts","../src/extrinsic/pallets/polkadotXcm/polkadotXcm.ts","../src/extrinsic/pallets/xTokens/xTokens.utils.ts","../src/extrinsic/pallets/xTokens/xTokens.ts","../src/extrinsic/pallets/xTransfer/xTransfer.ts","../src/extrinsic/pallets/xcmPallet/xcmPallet.ts","../src/extrinsic/ExtrinsicBuilder.ts","../src/types/substrate/SubstrateCallConfig.ts","../src/fee/FeeBuilder.ts"],"sourcesContent":["import '@polkadot/api-augment';\n\nexport * from './asset-min';\nexport * from './balance';\nexport * from './builder.interfaces';\nexport * from './contract';\nexport * from './extrinsic';\nexport * from './fee';\nexport * from './types/BaseConfig';\nexport * from './types/substrate/SubstrateQueryConfig';\n","export enum CallType {\n Evm = 'Evm',\n Substrate = 'Substrate',\n}\n","import { CallType } from '../builder.interfaces';\n\nexport interface BaseConfigConstructorParams {\n module: string;\n func: string;\n type: CallType;\n}\n\nexport class BaseConfig {\n readonly module: string;\n\n readonly func: string;\n\n readonly type: CallType;\n\n constructor({ module, func, type }: BaseConfigConstructorParams) {\n this.module = module;\n this.func = func;\n this.type = type;\n }\n}\n","import { SetOptional } from '@moonbeam-network/xcm-types';\nimport { CallType } from '../../builder.interfaces';\nimport { BaseConfig, BaseConfigConstructorParams } from '../BaseConfig';\n\nexport interface QueryConfigConstructorParams\n extends SetOptional<BaseConfigConstructorParams, 'type'> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n args?: any[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n transform: (data: any) => Promise<bigint>;\n}\n\nexport class SubstrateQueryConfig extends BaseConfig {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n readonly args: any[];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n readonly transform: (data: any) => Promise<bigint>;\n\n constructor({\n args = [],\n transform,\n type = CallType.Substrate,\n ...other\n }: QueryConfigConstructorParams) {\n super({ ...other, type });\n\n this.args = args;\n this.transform = transform;\n }\n}\n","/* eslint-disable sort-keys */\n/* eslint-disable @typescript-eslint/no-use-before-define */\n\nimport { Option } from '@polkadot/types';\nimport { PalletAssetsAssetDetails } from '@polkadot/types/lookup';\nimport { SubstrateQueryConfig } from '../types/substrate/SubstrateQueryConfig';\nimport { AssetMinConfigBuilder } from './AssetMinBuilder.interfaces';\n\nexport function AssetMinBuilder() {\n return {\n assetRegistry,\n assets,\n };\n}\n\nfunction assetRegistry() {\n const pallet = 'assetRegistry';\n return {\n assetMetadatas: (): AssetMinConfigBuilder => ({\n build: ({ asset }) =>\n new SubstrateQueryConfig({\n module: pallet,\n func: 'assetMetadatas',\n args: [asset],\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n transform: async (response: Option<any>): Promise<bigint> =>\n response.unwrapOrDefault().minimalBalance.toBigInt(),\n }),\n }),\n currencyMetadatas: (): AssetMinConfigBuilder => ({\n build: ({ asset }) =>\n new SubstrateQueryConfig({\n module: pallet,\n func: 'currencyMetadatas',\n args: [asset],\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n transform: async (response: Option<any>): Promise<bigint> =>\n response.unwrapOrDefault().minimalBalance.toBigInt(),\n }),\n }),\n };\n}\n\nfunction assets() {\n return {\n asset: (): AssetMinConfigBuilder => ({\n build: ({ asset }) =>\n new SubstrateQueryConfig({\n module: 'assets',\n func: 'asset',\n args: [asset],\n transform: async (\n response: Option<PalletAssetsAssetDetails>,\n ): Promise<bigint> =>\n response.unwrapOrDefault().minBalance.toBigInt(),\n }),\n }),\n };\n}\n","/* eslint-disable sort-keys */\n/* eslint-disable @typescript-eslint/no-use-before-define */\n\nimport { Option } from '@polkadot/types';\nimport {\n FrameSystemAccountInfo,\n PalletAssetsAssetAccount,\n PalletBalancesAccountData,\n} from '@polkadot/types/lookup';\nimport { isString } from '@polkadot/util';\nimport { evmToAddress } from '@polkadot/util-crypto';\nimport { ContractConfig } from '../contract';\nimport { SubstrateQueryConfig } from '../types/substrate/SubstrateQueryConfig';\nimport {\n BalanceConfigBuilder,\n EquilibriumSystemBalanceData,\n PalletBalancesAccountDataOld,\n TokensPalletAccountData,\n} from './BalanceBuilder.interfaces';\n\nexport function BalanceBuilder() {\n return {\n evm,\n substrate,\n };\n}\n\nexport function evm() {\n return {\n erc20,\n };\n}\n\nexport function substrate() {\n return {\n assets,\n system,\n tokens,\n };\n}\n\nfunction erc20(): BalanceConfigBuilder {\n return {\n build: ({ address, asset }) => {\n if (!asset || !isString(asset)) {\n throw new Error(`Invalid contract address: ${asset}`);\n }\n\n return new ContractConfig({\n address: asset,\n args: [address],\n func: 'balanceOf',\n module: 'Erc20',\n });\n },\n };\n}\n\nfunction assets() {\n return {\n account: (): BalanceConfigBuilder => ({\n build: ({ address, asset }) =>\n new SubstrateQueryConfig({\n module: 'assets',\n func: 'account',\n args: [asset, address],\n transform: async (\n response: Option<PalletAssetsAssetAccount>,\n ): Promise<bigint> => response.unwrapOrDefault().balance.toBigInt(),\n }),\n }),\n };\n}\n\nfunction system() {\n return {\n account: (): BalanceConfigBuilder => ({\n build: ({ address }) =>\n new SubstrateQueryConfig({\n module: 'system',\n func: 'account',\n args: [address],\n transform: async (\n response: FrameSystemAccountInfo,\n ): Promise<bigint> => {\n const balance = response.data as PalletBalancesAccountData &\n PalletBalancesAccountDataOld;\n const frozen = balance.miscFrozen ?? balance.frozen;\n\n return BigInt(balance.free.sub(frozen).toString());\n },\n }),\n }),\n accountEquilibrium: (): BalanceConfigBuilder => ({\n build: ({ address, asset }) =>\n new SubstrateQueryConfig({\n module: 'system',\n func: 'account',\n args: [address],\n transform: async (response): Promise<bigint> => {\n if (response.data.isEmpty) {\n return 0n;\n }\n\n const res = response.data.toJSON() as unknown;\n let balances: EquilibriumSystemBalanceData | undefined;\n\n if (Array.isArray(res)) {\n balances = res;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (Array.isArray((res as any)?.v0?.balance)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n balances = (res as any).v0.balance;\n }\n\n if (!balances) {\n throw new Error(\"Can't get balance from Equilibrium chain\");\n }\n\n const balance = balances.find(([assetId]) => assetId === asset);\n\n if (!balance) {\n return 0n;\n }\n\n return BigInt(balance[1].positive);\n },\n }),\n }),\n accountEvmTo32: (): BalanceConfigBuilder => ({\n build: ({ address }) => {\n const substrateAddress = evmToAddress(address);\n\n return new SubstrateQueryConfig({\n module: 'system',\n func: 'account',\n args: [substrateAddress],\n transform: async (\n response: FrameSystemAccountInfo,\n ): Promise<bigint> => {\n const balance = response.data as PalletBalancesAccountData &\n PalletBalancesAccountDataOld;\n const frozen = balance.miscFrozen ?? balance.frozen;\n\n return BigInt(balance.free.sub(frozen).toString());\n },\n });\n },\n }),\n };\n}\n\nfunction tokens() {\n return {\n accounts: (): BalanceConfigBuilder => ({\n build: ({ address, asset }) =>\n new SubstrateQueryConfig({\n module: 'tokens',\n func: 'accounts',\n args: [address, asset],\n transform: async ({\n free,\n frozen,\n }: TokensPalletAccountData): Promise<bigint> =>\n BigInt(free.sub(frozen).toString()),\n }),\n }),\n };\n}\n","/* eslint-disable @typescript-eslint/no-use-before-define */\nimport { AnyChain } from '@moonbeam-network/xcm-types';\nimport { formatAssetIdToERC20 } from '@moonbeam-network/xcm-utils';\nimport { isString, u8aToHex } from '@polkadot/util';\nimport { decodeAddress, evmToAddress } from '@polkadot/util-crypto';\nimport { ContractConfigBuilder } from '../../ContractBuilder.interfaces';\nimport { ContractConfig } from '../../ContractConfig';\n\nconst U_64_MAX = 18446744073709551615n;\n\nexport function Xtokens() {\n return {\n transfer: (weight = U_64_MAX): ContractConfigBuilder => ({\n build: ({ address, amount, asset, destination }) =>\n new ContractConfig({\n args: [\n isString(asset) ? formatAssetIdToERC20(asset) : asset,\n amount,\n getDestinationMultilocation(address, destination),\n weight,\n ],\n func: 'transfer',\n module: 'Xtokens',\n }),\n }),\n transferMultiCurrencies: (weight = U_64_MAX): ContractConfigBuilder => ({\n build: ({ address, amount, asset, destination, fee, feeAsset }) =>\n new ContractConfig({\n args: [\n [\n [isString(asset) ? formatAssetIdToERC20(asset) : asset, amount],\n [\n isString(feeAsset) ? formatAssetIdToERC20(feeAsset) : feeAsset,\n fee,\n ],\n ],\n 1, // index of the fee asset\n getDestinationMultilocation(address, destination),\n weight,\n ],\n func: 'transferMultiCurrencies',\n module: 'Xtokens',\n }),\n }),\n transferWithEvmTo32: (weight = U_64_MAX): ContractConfigBuilder => ({\n build: ({ address, amount, asset, destination }) => {\n const multilocation =\n getDestinationMultilocationForPrecompileDestination(\n address,\n destination,\n );\n\n return new ContractConfig({\n args: [\n isString(asset) ? formatAssetIdToERC20(asset) : asset,\n amount,\n multilocation,\n weight,\n ],\n func: 'transfer',\n module: 'Xtokens',\n });\n },\n }),\n };\n}\n\ntype DestinationMultilocation = [\n /**\n * 1 - if transaction is going through a relay chain\n */\n 1,\n (\n | [\n /**\n * example '0x00000007DC'\n * 7DC - parachain id in hex\n * can be found here:\n * - https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fkusama-rpc.polkadot.io#/parachains\n * - https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frpc.polkadot.io#/parachains\n */\n string,\n /**\n * example '0x01%account%00',\n * enum = 01 (AccountId32)\n * networkId = 00 (any)\n */\n string,\n ]\n | [\n /**\n * example '0x01%account%00',\n * enum = 01 (AccountId32)\n * networkId = 00 (any)\n */\n string,\n ]\n ),\n];\n\nfunction getDestinationMultilocationForPrecompileDestination(\n address: string,\n destination: AnyChain,\n): DestinationMultilocation {\n /* \n 01: AccountId32\n 03: AccountKey20\n https://docs.moonbeam.network/builders/interoperability/xcm/xc20/xtokens/#building-the-precompile-multilocation\n */\n const accountType = '01';\n const substrateAddress = evmToAddress(address);\n const acc = `0x${accountType}${u8aToHex(\n decodeAddress(substrateAddress),\n -1,\n false,\n )}00`;\n\n return [\n 1,\n destination.parachainId\n ? [`0x0000000${destination.parachainId.toString(16)}`, acc]\n : [acc],\n ];\n}\n\nfunction getDestinationMultilocation(\n address: string,\n destination: AnyChain,\n): DestinationMultilocation {\n /* \n 01: AccountId32\n 03: AccountKey20\n https://docs.moonbeam.network/builders/interoperability/xcm/xc20/xtokens/#building-the-precompile-multilocation\n */\n const accountType = destination.isEvmParachain() ? '03' : '01';\n const acc = `0x${accountType}${u8aToHex(\n decodeAddress(address),\n -1,\n false,\n )}00`;\n\n return [\n 1,\n destination.parachainId\n ? [`0x0000000${destination.parachainId.toString(16)}`, acc]\n : [acc],\n ];\n}\n","import { CallType } from '../builder.interfaces';\nimport { BaseConfig, BaseConfigConstructorParams } from '../types/BaseConfig';\n\nexport interface ContractConfigConstructorParams\n extends Omit<BaseConfigConstructorParams, 'type'> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n args: any[];\n address?: string;\n}\n\nexport class ContractConfig extends BaseConfig {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n readonly args: any[];\n\n readonly address?: string;\n\n constructor({ args, address, ...other }: ContractConfigConstructorParams) {\n super({ ...other, type: CallType.Evm });\n\n this.args = args;\n this.address = address;\n }\n}\n","import { Xtokens } from './contracts/Xtokens';\n\nexport function ContractBuilder() {\n return {\n Xtokens,\n };\n}\n","import { SubmittableExtrinsicFunction } from '@polkadot/api/types';\nimport { getTypeDef } from '@polkadot/types';\nimport { u8aToHex } from '@polkadot/util';\nimport { decodeAddress } from '@polkadot/util-crypto';\nimport { XcmVersion } from './ExtrinsicBuilder.interfaces';\n\nexport function getExtrinsicArgumentVersion(\n func?: SubmittableExtrinsicFunction<'promise'>,\n index: number = 0,\n): XcmVersion {\n if (!func) return XcmVersion.v1;\n\n const { type } = func.meta.args[index];\n const instance = func.meta.registry.createType(type.toString());\n const raw = getTypeDef(instance?.toRawType());\n\n if (!raw.sub) {\n return XcmVersion.v1;\n }\n\n const versions = Array.isArray(raw.sub)\n ? raw.sub.map((x) => x.name)\n : [raw.sub.name];\n\n if (versions.includes(XcmVersion.v1)) {\n return XcmVersion.v1;\n }\n\n if (versions.includes(XcmVersion.v2)) {\n return XcmVersion.v2;\n }\n\n if (versions.includes(XcmVersion.v3)) {\n return XcmVersion.v3;\n }\n\n throw new Error(\"Can't find Xcm version\");\n}\n\nexport function getExtrinsicAccount(address: string) {\n const isEthAddress = address.length === 42 && address.startsWith('0x');\n\n return isEthAddress\n ? {\n AccountKey20: {\n key: address,\n },\n }\n : {\n AccountId32: {\n id: u8aToHex(decodeAddress(address)),\n network: null,\n },\n };\n}\n","import { AnyChain, ChainAssetId } from '@moonbeam-network/xcm-types';\nimport { ExtrinsicConfig } from './ExtrinsicConfig';\n\nexport interface ExtrinsicConfigBuilder {\n build: (params: ExtrinsicConfigBuilderPrams) => ExtrinsicConfig;\n}\n\nexport interface ExtrinsicConfigBuilderPrams {\n address: string;\n amount: bigint;\n asset: ChainAssetId;\n destination: AnyChain;\n fee: bigint;\n feeAsset: ChainAssetId;\n palletInstance?: number;\n source: AnyChain;\n}\n\nexport enum XcmVersion {\n v1 = 'V1',\n v2 = 'V2',\n v3 = 'V3',\n}\n\nexport type Parents = 0 | 1;\n","import { SubmittableExtrinsicFunction } from '@polkadot/api/types';\nimport { CallType } from '../builder.interfaces';\nimport { BaseConfig, BaseConfigConstructorParams } from '../types/BaseConfig';\n\nexport interface ExtrinsicConfigConstructorParams\n extends Omit<BaseConfigConstructorParams, 'type'> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n getArgs: (func?: SubmittableExtrinsicFunction<'promise'>) => any[];\n}\n\nexport class ExtrinsicConfig extends BaseConfig {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n getArgs: (func?: SubmittableExtrinsicFunction<'promise'>) => any[];\n\n constructor({ getArgs, ...other }: ExtrinsicConfigConstructorParams) {\n super({ ...other, type: CallType.Substrate });\n\n this.getArgs = getArgs;\n }\n}\n","/* eslint-disable sort-keys */\nimport { ExtrinsicConfigBuilder } from '../../ExtrinsicBuilder.interfaces';\nimport { getExtrinsicAccount } from '../../ExtrinsicBuilder.utils';\nimport { ExtrinsicConfig } from '../../ExtrinsicConfig';\n\nexport enum EqBalancesFee {\n SovereignAccWillPay = 'SovereignAccWillPay',\n TargetChainAccWillPay = 'TargetChainAccWillPay',\n ThisAccWillPay = 'ThisAccWillPay',\n}\n\nconst pallet = 'eqBalances';\n\nexport function eqBalances() {\n return {\n xcmTransfer: (): ExtrinsicConfigBuilder => ({\n build: ({ address, amount, asset, destination }) =>\n new ExtrinsicConfig({\n module: pallet,\n func: 'xcmTransfer',\n getArgs: () => [\n asset,\n amount,\n {\n parents: 1,\n interior: {\n X2: [\n {\n Parachain: destination.parachainId,\n },\n getExtrinsicAccount(address),\n ],\n },\n },\n EqBalancesFee.ThisAccWillPay,\n ],\n }),\n }),\n transferXcm: (): ExtrinsicConfigBuilder => ({\n build: ({ address, amount, asset, destination, fee, feeAsset }) =>\n new ExtrinsicConfig({\n module: pallet,\n func: 'transferXcm',\n getArgs: () => {\n const amountWithoutFee = amount - fee > 0n ? amount - fee : 0n;\n\n return [\n [asset, asset === feeAsset ? amountWithoutFee : amount],\n [feeAsset, fee],\n {\n parents: 1,\n interior: {\n X2: [\n {\n Parachain: destination.parachainId,\n },\n getExtrinsicAccount(address),\n ],\n },\n },\n ];\n },\n }),\n }),\n };\n}\n","/* eslint-disable sort-keys */\nimport { SubmittableExtrinsicFunction } from '@polkadot/api/types';\nimport {\n ExtrinsicConfigBuilderPrams,\n Parents,\n} from '../../ExtrinsicBuilder.interfaces';\nimport {\n getExtrinsicAccount,\n getExtrinsicArgumentVersion,\n} from '../../ExtrinsicBuilder.utils';\n\nexport interface GetExtrinsicParams extends ExtrinsicConfigBuilderPrams {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n asset: any;\n func?: SubmittableExtrinsicFunction<'promise'>;\n parents?: Parents;\n feeIndex?: number;\n}\n\nexport function getPolkadotXcmExtrinsicArgs({\n asset,\n address,\n destination,\n func,\n parents = 1,\n feeIndex = 0,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n}: GetExtrinsicParams): any[] {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n const version = getExtrinsicArgumentVersion(func);\n\n return [\n {\n [version]: {\n parents,\n interior: {\n X1: {\n Parachain: destination.parachainId,\n },\n },\n },\n },\n {\n [version]: {\n parents: 0,\n interior: {\n X1: getExtrinsicAccount(address),\n },\n },\n },\n {\n [version]: asset,\n },\n feeIndex,\n 'Unlimited',\n ];\n}\n","/* eslint-disable sort-keys */\nimport { ExtrinsicConfigBuilder } from '../../ExtrinsicBuilder.interfaces';\nimport { ExtrinsicConfig } from '../../ExtrinsicConfig';\nimport { getPolkadotXcmExtrinsicArgs } from './polkadotXcm.util';\n\nconst pallet = 'polkadotXcm';\n\nexport function polkadotXcm() {\n return {\n limitedReserveTransferAssets: () => {\n const func = 'limitedReserveTransferAssets';\n\n return {\n here: (): ExtrinsicConfigBuilder => ({\n build: (params) =>\n new ExtrinsicConfig({\n module: pallet,\n func,\n getArgs: (extrinsicFunction) =>\n getPolkadotXcmExtrinsicArgs({\n ...params,\n func: extrinsicFunction,\n asset: [\n {\n id: {\n Concrete: {\n parents: 0,\n interior: 'Here',\n },\n },\n fun: {\n Fungible: params.amount,\n },\n },\n ],\n }),\n }),\n }),\n X1: (): ExtrinsicConfigBuilder => ({\n build: (params) =>\n new ExtrinsicConfig({\n module: pallet,\n func,\n getArgs: (extrinsicFunction) =>\n getPolkadotXcmExtrinsicArgs({\n ...params,\n func: extrinsicFunction,\n asset: [\n {\n id: {\n Concrete: {\n parents: 0,\n interior: {\n X1: {\n PalletInstance: params.palletInstance,\n },\n },\n },\n },\n fun: {\n Fungible: params.amount,\n },\n },\n ],\n }),\n }),\n }),\n X2: (): ExtrinsicConfigBuilder => ({\n build: (params) =>\n new ExtrinsicConfig({\n module: pallet,\n func,\n getArgs: (extrinsicFunction) => {\n const isAssetDifferent =\n !!params.feeAsset && params.asset !== params.feeAsset;\n const asset = [\n {\n id: {\n Concrete: {\n parents: 0,\n interior: {\n X2: [\n {\n PalletInstance: params.palletInstance,\n },\n {\n GeneralIndex: params.asset,\n },\n ],\n },\n },\n },\n fun: {\n Fungible: params.amount,\n },\n },\n ];\n\n if (isAssetDifferent) {\n asset.push({\n id: {\n Concrete: {\n parents: 0,\n interior: {\n X2: [\n {\n PalletInstance: params.palletInstance,\n },\n {\n GeneralIndex: params.feeAsset,\n },\n ],\n },\n },\n },\n fun: {\n Fungible: params.fee,\n },\n });\n }\n\n return getPolkadotXcmExtrinsicArgs({\n ...params,\n func: extrinsicFunction,\n asset,\n feeIndex: isAssetDifferent ? 1 : 0,\n });\n },\n }),\n }),\n };\n },\n limitedReserveWithdrawAssets: () => {\n const func = 'limitedReserveWithdrawAssets';\n\n return {\n X2: (): ExtrinsicConfigBuilder => ({\n build: (params) =>\n new ExtrinsicConfig({\n module: pallet,\n func,\n getArgs: (extrinsicFunction) =>\n getPolkadotXcmExtrinsicArgs({\n ...params,\n func: extrinsicFunction,\n asset: [\n {\n id: {\n Concrete: {\n parents: 1,\n interior: {\n X2: [\n {\n Parachain: params.destination.parachainId,\n },\n {\n PalletInstance: params.palletInstance,\n },\n ],\n },\n },\n },\n fun: {\n Fungible: params.amount,\n },\n },\n ],\n }),\n }),\n }),\n };\n },\n };\n}\n","import { AnyChain } from '@moonbeam-network/xcm-types';\nimport { XcmVersion } from '../../ExtrinsicBuilder.interfaces';\nimport { getExtrinsicAccount } from '../../ExtrinsicBuilder.utils';\nimport { XTokensWeightLimit } from './xTokens.interfaces';\n\n/**\n * It is safer to always use unlimited\n */\nexport function getWeight(): XTokensWeightLimit {\n return 'Unlimited';\n}\n\nexport function getDestination(\n version: XcmVersion,\n address: string,\n destination: AnyChain,\n) {\n return {\n [version]: {\n parents: 1,\n // eslint-disable-next-line sort-keys\n interior: {\n X2: [\n {\n Parachain: destination.parachainId,\n },\n getExtrinsicAccount(address),\n ],\n },\n },\n };\n}\n","/* eslint-disable sort-keys */\nimport {\n ExtrinsicConfigBuilder,\n XcmVersion,\n} from '../../ExtrinsicBuilder.interfaces';\nimport { getExtrinsicArgumentVersion } from '../../ExtrinsicBuilder.utils';\nimport { ExtrinsicConfig } from '../../ExtrinsicConfig';\nimport { getDestination, getWeight } from './xTokens.utils';\n\nconst pallet = 'xTokens';\n\nexport function xTokens() {\n return {\n transfer: (): ExtrinsicConfigBuilder => ({\n build: ({ address, amount, asset, destination }) =>\n new ExtrinsicConfig({\n module: pallet,\n func: 'transfer',\n getArgs: (func) => {\n const version = getExtrinsicArgumentVersion(func, 2);\n\n return [\n asset,\n amount,\n getDestination(version, address, destination),\n getWeight(),\n ];\n },\n }),\n }),\n transferMultiAsset: (originParachainId: number) => {\n const funcName = 'transferMultiasset';\n\n return {\n here: (): ExtrinsicConfigBuilder => ({\n build: ({ address, amount, destination }) =>\n new ExtrinsicConfig({\n module: pallet,\n func: funcName,\n getArgs: (func) => {\n const version = getExtrinsicArgumentVersion(func, 1);\n\n return [\n {\n [version]: {\n id: {\n Concrete: {\n parents: 0,\n interior: 'Here',\n },\n },\n fun: {\n Fungible: amount,\n },\n },\n },\n getDestination(version, address, destination),\n getWeight(),\n ];\n },\n }),\n }),\n X1: (): ExtrinsicConfigBuilder => ({\n build: ({ address, amount, destination }) =>\n new ExtrinsicConfig({\n module: pallet,\n func: funcName,\n getArgs: (func) => {\n const version = getExtrinsicArgumentVersion(func, 1);\n\n return [\n {\n [version]: {\n id: {\n Concrete: {\n parents: 1,\n interior: {\n X1: {\n Parachain: originParachainId,\n },\n },\n },\n },\n fun: {\n Fungible: amount,\n },\n },\n },\n getDestination(version, address, destination),\n getWeight(),\n ];\n },\n }),\n }),\n X2: (): ExtrinsicConfigBuilder => ({\n build: ({ address, amount, asset, destination }) =>\n new ExtrinsicConfig({\n module: pallet,\n func: funcName,\n getArgs: (func) => {\n const version = getExtrinsicArgumentVersion(func, 1);\n\n return [\n {\n [version]: {\n id: {\n Concrete: {\n parents: 1,\n interior: {\n X2: [\n {\n Parachain: originParachainId,\n },\n {\n GeneralKey: asset,\n },\n ],\n },\n },\n },\n fun: {\n Fungible: amount,\n },\n },\n },\n getDestination(version, address, destination),\n getWeight(),\n ];\n },\n }),\n }),\n };\n },\n transferMultiCurrencies: (): ExtrinsicConfigBuilder => ({\n build: ({ address, amount, asset, destination, fee, feeAsset }) =>\n new ExtrinsicConfig({\n module: pallet,\n func: 'transferMulticurrencies',\n getArgs: () => [\n [\n [asset, amount],\n [feeAsset, fee],\n ],\n 1,\n getDestination(XcmVersion.v3, address, destination),\n getWeight(),\n ],\n }),\n }),\n };\n}\n","/* eslint-disable sort-keys */\nimport { ExtrinsicConfigBuilder } from '../../ExtrinsicBuilder.interfaces';\nimport { getExtrinsicAccount } from '../../ExtrinsicBuilder.utils';\nimport { ExtrinsicConfig } from '../../ExtrinsicConfig';\n\nconst pallet = 'xTransfer';\n\nexport function xTransfer() {\n return {\n transfer: () => {\n const method = 'transfer';\n\n return {\n here: (): ExtrinsicConfigBuilder => ({\n build: ({ address, amount, destination }) =>\n new ExtrinsicConfig({\n module: pallet,\n func: method,\n getArgs: () => [\n {\n id: {\n Concrete: {\n parents: 0,\n interior: 'Here',\n },\n },\n fun: {\n Fungible: amount,\n },\n },\n {\n parents: 1,\n interior: {\n X2: [\n {\n Parachain: destination.parachainId,\n },\n getExtrinsicAccount(address),\n ],\n },\n },\n {\n refTime: 5_000_000_000,\n proofSize: 0,\n },\n ],\n }),\n }),\n X2: (): ExtrinsicConfigBuilder => ({\n build: ({ address, amount, destination, palletInstance }) =>\n new ExtrinsicConfig({\n module: pallet,\n func: method,\n getArgs: () => [\n {\n id: {\n Concrete: {\n parents: 1,\n interior: {\n X2: [\n {\n Parachain: destination.parachainId,\n },\n {\n PalletInstance: palletInstance,\n },\n ],\n },\n },\n },\n fun: {\n Fungible: amount || 1n,\n },\n },\n {\n parents: 1,\n interior: {\n X2: [\n {\n Parachain: destination.parachainId,\n },\n getExtrinsicAccount(address),\n ],\n },\n },\n {\n refTime: 5_000_000_000,\n proofSize: 0,\n },\n ],\n }),\n }),\n };\n },\n };\n}\n","/* eslint-disable sort-keys */\nimport {\n ExtrinsicConfigBuilder,\n Parents,\n} from '../../ExtrinsicBuilder.interfaces';\nimport { ExtrinsicConfig } from '../../ExtrinsicConfig';\nimport { getPolkadotXcmExtrinsicArgs } from '../polkadotXcm/polkadotXcm.util';\n\nconst pallet = 'xcmPallet';\n\nexport function xcmPallet() {\n return {\n limitedReserveTransferAssets: (parents: Parents = 1) => {\n const func = 'limitedReserveTransferAssets';\n\n return {\n here: (): ExtrinsicConfigBuilder => ({\n build: (params) =>\n new ExtrinsicConfig({\n module: pallet,\n func,\n getArgs: (extrinsicFunction) =>\n getPolkadotXcmExtrinsicArgs({\n ...params,\n parents,\n func: extrinsicFunction,\n asset: [\n {\n id: {\n Concrete: {\n parents: 0,\n interior: 'Here',\n },\n },\n fun: {\n Fungible: params.amount,\n },\n },\n ],\n }),\n }),\n }),\n };\n },\n };\n}\n","/* eslint-disable sort-keys */\n/* eslint-disable @typescript-eslint/no-use-before-define */\n\nimport { eqBalances } from './pallets/eqBalances';\nimport { polkadotXcm } from './pallets/polkadotXcm';\nimport { xTokens } from './pallets/xTokens';\nimport { xTransfer } from './pallets/xTransfer';\nimport { xcmPallet } from './pallets/xcmPallet';\n\nexport function ExtrinsicBuilder() {\n return {\n eqBalances,\n xTokens,\n xTransfer,\n polkadotXcm,\n xcmPallet,\n };\n}\n","import { ApiPromise } from '@polkadot/api';\nimport { CallType } from '../../builder.interfaces';\n\nexport interface SubstrateCallConfigConstructorParams {\n api: ApiPromise;\n call: () => Promise<bigint>;\n}\n\nexport class SubstrateCallConfig {\n readonly api: ApiPromise;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n readonly call: () => Promise<any>;\n\n readonly type = CallType.Substrate;\n\n constructor({ api, call }: SubstrateCallConfigConstructorParams) {\n this.api = api;\n this.call = call;\n }\n}\n","/* eslint-disable sort-keys */\n/* eslint-disable @typescript-eslint/no-use-before-define */\n\nimport { Option, u128 } from '@polkadot/types';\nimport { SubstrateCallConfig } from '../types/substrate/SubstrateCallConfig';\nimport { FeeConfigBuilder } from './FeeBuilder.interfaces';\n\nexport function FeeBuilder() {\n return {\n assetManager,\n };\n}\n\nfunction assetManager() {\n return {\n assetTypeUnitsPerSecond: (weight = 1_000_000_000): FeeConfigBuilder => ({\n build: ({ api, asset }) =>\n new SubstrateCallConfig({\n api,\n call: async (): Promise<bigint> => {\n const type = (await api.query.assetManager.assetIdType(\n asset,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n )) as unknown as Option<any>;\n\n if (type.isNone) {\n throw new Error(`No asset type found for asset ${asset}`);\n }\n\n const unwrappedType = type.unwrap();\n\n const res = (await api.query.assetManager.assetTypeUnitsPerSecond(\n unwrappedType,\n )) as unknown as Option<u128>;\n\n const unitsPerSecond = res.unwrapOrDefault().toBigInt();\n\n return (BigInt(weight) * unitsPerSecond) / BigInt(10 ** 12);\n },\n }),\n }),\n };\n}\n"],"mappings":"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AO,MACnB,CACF,CACF,CACF,CAAC,CACL,CAAC,CACL,GACA,GAAI,KAA+B,CACjC,MAAQA,GACN,IAAIC,EAAgB,CAClB,OAAQJ,EACR,KAAAE,EACA,QAAUG,GACRC,EAA4B,CAC1B,GAAGH,EACH,KAAME,EACN,MAAO,CACL,CACE,GAAI,CACF,SAAU,CACR,QAAS,EACT,SAAU,CACR,GAAI,CACF,eAAgBF,EAAO,cACzB,CACF,CACF,CACF,EACA,IAAK,CACH,SAAUA,EAAO,MACnB,CACF,CACF,CACF,CAAC,CACL,CAAC,CACL,GACA,GAAI,KAA+B,CACjC,MAAQA,GACN,IAAIC,EAAgB,CAClB,OAAQJ,EACR,KAAAE,EACA,QAAUG,GAAsB,CAC9B,IAAME,EACJ,CAAC,CAACJ,EAAO,UAAYA,EAAO,QAAUA,EAAO,SACzCK,EAAQ,CACZ,CACE,GAAI,CACF,SAAU,CACR,QAAS,EACT,SAAU,CACR,GAAI,CACF,CACE,eAAgBL,EAAO,cACzB,EACA,CACE,aAAcA,EAAO,KACvB,CACF,CACF,CACF,CACF,EACA,IAAK,CACH,SAAUA,EAAO,MACnB,CACF,CACF,EAEA,OAAII,GACFC,EAAM,KAAK,CACT,GAAI,CACF,SAAU,CACR,QAAS,EACT,SAAU,CACR,GAAI,CACF,CACE,eAAgBL,EAAO,cACzB,EACA,CACE,aAAcA,EAAO,QACvB,CACF,CACF,CACF,CACF,EACA,IAAK,CACH,SAAUA,EAAO,GACnB,CACF,CAAC,EAGIG,EAA4B,CACjC,GAAGH,EACH,KAAME,EACN,MAAAG,EACA,SAAUD,EAAmB,EAAI,CACnC,CAAC,CACH,CACF,CAAC,CACL,EACF,CACF,EACA,6BAA8B,IAAM,CAClC,IAAML,EAAO,+BAEb,MAAO,CACL,GAAI,KAA+B,CACjC,MAAQC,GACN,IAAIC,EAAgB,CAClB,OAAQJ,EACR,KAAAE,EACA,QAAUG,GACRC,EAA4B,CAC1B,GAAGH,EACH,KAAME,EACN,MAAO,CACL,CACE,GAAI,CACF,SAAU,CACR,QAAS,EACT,SAAU,CACR,GAAI,CACF,CACE,UAAWF,EAAO,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","names":["CallType","BaseConfig","module","func","type","SubstrateQueryConfig","BaseConfig","args","transform","type","other","AssetMinBuilder","assetRegistry","assets","pallet","asset","SubstrateQueryConfig","response","isString","evmToAddress","formatAssetIdToERC20","isString","u8aToHex","decodeAddress","evmToAddress","ContractConfig","BaseConfig","args","address","other","U_64_MAX","Xtokens","weight","address","amount","asset","destination","ContractConfig","isString","formatAssetIdToERC20","getDestinationMultilocation","fee","feeAsset","multilocation","getDestinationMultilocationForPrecompileDestination","accountType","substrateAddress","evmToAddress","acc","u8aToHex","decodeAddress","ContractBuilder","Xtokens","BalanceBuilder","evm","substrate","erc20","assets","system","tokens","address","asset","isString","ContractConfig","SubstrateQueryConfig","response","balance","frozen","_a","res","balances","assetId","substrateAddress","evmToAddress","free","getTypeDef","u8aToHex","decodeAddress","XcmVersion","getExtrinsicArgumentVersion","func","index","type","instance","raw","getTypeDef","versions","x","getExtrinsicAccount","address","u8aToHex","decodeAddress","ExtrinsicConfig","BaseConfig","getArgs","other","pallet","eqBalances","address","amount","asset","destination","ExtrinsicConfig","getExtrinsicAccount","fee","feeAsset","amountWithoutFee","getPolkadotXcmExtrinsicArgs","asset","address","destination","func","parents","feeIndex","version","getExtrinsicArgumentVersion","getExtrinsicAccount","pallet","polkadotXcm","func","params","ExtrinsicConfig","extrinsicFunction","getPolkadotXcmExtrinsicArgs","isAssetDifferent","asset","getWeight","getDestination","version","address","destination","getExtrinsicAccount","pallet","xTokens","address","amount","asset","destination","ExtrinsicConfig","func","version","getExtrinsicArgumentVersion","getDestination","getWeight","originParachainId","funcName","fee","feeAsset","pallet","xTransfer","method","address","amount","destination","ExtrinsicConfig","getExtrinsicAccount","palletInstance","pallet","xcmPallet","parents","func","params","ExtrinsicConfig","extrinsicFunction","getPolkadotXcmExtrinsicArgs","ExtrinsicBuilder","eqBalances","xTokens","xTransfer","polkadotXcm","xcmPallet","SubstrateCallConfig","api","call","FeeBuilder","assetManager","weight","api","asset","SubstrateCallConfig","type","unwrappedType","unitsPerSecond"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moonbeam-network/xcm-builder",
3
- "version": "1.0.0-dev.9",
3
+ "version": "1.0.0-dev.91",
4
4
  "description": "Moonbeam XCM builder",
5
5
  "scripts": {
6
6
  "build": "tsup",
@@ -18,17 +18,17 @@
18
18
  "repository": {
19
19
  "directory": "packages/builder",
20
20
  "type": "git",
21
- "url": "git+https://github.com/PureStake/xcm-sdk.git"
21
+ "url": "git+https://github.com/moonbeam-foundation/xcm-sdk.git"
22
22
  },
23
23
  "keywords": [
24
24
  "moonbeam",
25
25
  "moonriver",
26
26
  "xcm"
27
27
  ],
28
- "author": "PureStake",
28
+ "author": "moonbeam-foundation",
29
29
  "license": "MIT",
30
30
  "bugs": {
31
- "url": "https://github.com/PureStake/xcm-sdk/issues"
31
+ "url": "https://github.com/moonbeam-foundation/xcm-sdk/issues"
32
32
  },
33
33
  "homepage": "https://docs.moonbeam.network/builders/xcm/xcm-sdk/xcm-sdk/",
34
34
  "files": [
@@ -50,17 +50,15 @@
50
50
  "types": "./build/index.d.ts",
51
51
  "main": "./build/index.cjs",
52
52
  "dependencies": {
53
- "@moonbeam-network/xcm-types": "1.0.0-dev.9",
54
- "@moonbeam-network/xcm-utils": "1.0.0-dev.9",
55
- "big.js": "^6.2.1",
56
- "ethers": "^5.7.2",
57
- "type-fest": "^3.8.0"
53
+ "@moonbeam-network/xcm-types": "1.0.0-dev.91",
54
+ "@moonbeam-network/xcm-utils": "1.0.0-dev.91",
55
+ "big.js": "^6.2.1"
58
56
  },
59
57
  "peerDependencies": {
60
- "@polkadot/api": "^10.9.1",
61
- "@polkadot/api-augment": "^10.9.1",
62
- "@polkadot/types": "^10.9.1",
63
- "@polkadot/util": "^12.3.2",
64
- "@polkadot/util-crypto": "^12.3.2"
58
+ "@polkadot/api": "^10.10.1",
59
+ "@polkadot/api-augment": "^10.10.1",
60
+ "@polkadot/types": "^10.10.1",
61
+ "@polkadot/util": "^12.5.1",
62
+ "@polkadot/util-crypto": "^12.5.1"
65
63
  }
66
64
  }