UNPKG

@luffalab/luffa-tron-sdk

Version:

luffa tron ts sdk

2 lines 12.8 kB
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var b=Object.defineProperty;var _=(r,e,t)=>e in r?b(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var s=(r,e,t)=>_(r,typeof e!="symbol"?e+"":e,t);var h=(g=>(g.CONNECT="connect",g.GETACCOUNT="getAccount",g.DISCONNECT="disconnect",g.ACCOUNT_CHANGE="accountChange",g.NETWORK_CHANGE="luffa_switchChain",g.CHAIN_CHANGED="chainChanged",g))(h||{});var A=()=>window&&_optionalChain([window, 'optionalAccess', _2 => _2._endlessWallet])!==void 0||_optionalChain([window, 'optionalAccess', _3 => _3.webkit, 'optionalAccess', _4 => _4.messageHandlers, 'optionalAccess', _5 => _5._endlessWallet])!==void 0||!1,T= exports.isLuffaMiniProgramWebview =()=>!!(window&&_optionalChain([window, 'optionalAccess', _6 => _6.navigator, 'optionalAccess', _7 => _7.userAgent])||"").includes("miniProgram"),l= exports.isLuffaMiniProgram =()=>!!(_optionalChain([window, 'optionalAccess', _8 => _8.wx])&&_optionalChain([window, 'optionalAccess', _9 => _9.wx, 'optionalAccess', _10 => _10.getSystemInfoSync])),w={mainnet:"endless",testnet:"eds"};var y=r=>{let e;switch(r){case"eth":e=1;break;case"eth_sepolia":e=11155111;break;case"bsc":e=56;break;case"bsc_test":e=97;break;case"tron":e=728126428;break;case"tron_nile":e=3448148188;break;case"endless":e=220;break;case"eds":e=221;break}return e},C=r=>{let e=_optionalChain([r, 'access', _11 => _11.raw_data, 'optionalAccess', _12 => _12.contract, 'optionalAccess', _13 => _13[0]]);if(!e||e.type!=="TriggerSmartContract")return{isApprove:!1,spender:""};let n=_optionalChain([e, 'access', _14 => _14.parameter, 'optionalAccess', _15 => _15.value, 'optionalAccess', _16 => _16.data, 'optionalAccess', _17 => _17.slice, 'call', _18 => _18(0,8)])==="095ea7b3",i="";if(n)try{i=window.tronWeb.address.fromHex("41"+r.raw_data.contract[0].parameter.value.data.slice(32,72))}catch (e2){}return{isApprove:n,spender:i}};var f=class f{constructor(){s(this,"callbacks",{});s(this,"listeners",{});s(this,"receive",e=>{let t=e.data.methodName;switch(this.callbacks[e.data.uuid+t]&&(this.callbacks[e.data.uuid+t](e.data.data),delete this.callbacks[e.data.uuid+t]),t){case"luffa_switchChain":{let n=e.data.data.network;if(!n)break;l()&&(n=e.data.data),this.emit(t,n),this.emit("chainChanged",`0x${_optionalChain([y, 'call', _19 => _19(n), 'optionalAccess', _20 => _20.toString, 'call', _21 => _21(16)])}`);break}case"connect":case"accountChange":{let n={...e.data.data};_optionalChain([e, 'optionalAccess', _22 => _22.data, 'optionalAccess', _23 => _23.data, 'optionalAccess', _24 => _24.account])?u.setAccountAddress(e.data.data.account):u.setAccountAddress(null),this.emit(t,n);break}case"disconnect":{u.setAccountAddress(null),this.emit(t,e.data.data);break}default:this.emit(t,e.data.data);break}});s(this,"addListener",(e,t)=>{this.listeners[e]||(this.listeners[e]=[]),this.listeners[e].push(t)});s(this,"removeListener",(e,t)=>{if(t){let n=_nullishCoalesce(_optionalChain([this, 'access', _25 => _25.listeners, 'access', _26 => _26[e], 'optionalAccess', _27 => _27.indexOf, 'call', _28 => _28(t)]), () => (-1));n>-1&&_optionalChain([this, 'access', _29 => _29.listeners, 'optionalAccess', _30 => _30[e], 'optionalAccess', _31 => _31.splice, 'call', _32 => _32(n,1)])}else this.listeners[e]=[]});s(this,"emit",(e,t)=>{_optionalChain([this, 'access', _33 => _33.listeners, 'optionalAccess', _34 => _34[e], 'optionalAccess', _35 => _35.forEach, 'call', _36 => _36(n=>n(t))])});s(this,"sendMessage",(e,t)=>{try{if(A()){this.sendLuffaMessage(e,t);return}if(l()||T()){this.sendMiniProgramMessage(e,t);return}}catch (e3){}});if(f._instance)return f._instance;f._instance=this,A()&&(window.tronWallet={sendResponse:this.sendResponse.bind(this)})}sendLuffaMessage(e,t){let n=_optionalChain([e, 'optionalAccess', _37 => _37.initData])||u.getIninData();e.initData={...n||{},network:_nullishCoalesce(w[n.network], () => (n.network))},e.from=u.getAccountAddress(),t&&(this.callbacks[e.uuid+e.methodName]=t),_optionalChain([window, 'optionalAccess', _38 => _38._tronWallet])?_optionalChain([window, 'access', _39 => _39._tronWallet, 'optionalAccess', _40 => _40.sendMessage, 'call', _41 => _41(JSON.stringify(e))]):_optionalChain([window, 'optionalAccess', _42 => _42.webkit])&&_optionalChain([window, 'optionalAccess', _43 => _43.webkit, 'optionalAccess', _44 => _44.messageHandlers, 'optionalAccess', _45 => _45._tronWallet])&&_optionalChain([window, 'access', _46 => _46.webkit, 'access', _47 => _47.messageHandlers, 'access', _48 => _48._tronWallet, 'optionalAccess', _49 => _49.postMessage, 'call', _50 => _50(e)])}sendResponse(e){let t=JSON.parse(e);this.receive({data:t})}sendMiniProgramMessage(e,t){let n="invokeNativePlugin",i=u.getAccountAddress(),d=u.getIninData(),p={api_name:"luffaWebRequest",data:{func:e.methodName,chainType:"endless",...e,initData:{...d,network:_nullishCoalesce(w[d.network], () => (d.network))},from:i}},m=a=>{t&&t({status:"success",...a.data||{}})},E=a=>{t&&t({status:"error",...a.data||{}})};switch(e.methodName){case"connect":case"getAccount":m=a=>{u.setAccountAddress(a.data.account),t&&t({account:_optionalChain([a, 'optionalAccess', _51 => _51.data, 'optionalAccess', _52 => _52.address])||"",...a.data||{}})},E=a=>{t&&t({account:""})};break;case"signMessage":case"signTransaction":case"signBuildTransaction":case"signAndSubmitTransaction":case"evmApprove":m=a=>{t&&t({status:"success",...a.data||{}})},E=a=>{t&&t({status:"error",...a.data||{}})};break;default:break}l()?wx[n]({...p,complete:a=>{a.status===void 0?t&&t({...a}):a.status==="success"?(m(a),this.receive({data:a})):E(a)}}):T()&&_optionalChain([window, 'access', _53 => _53.WeixinJSBridge, 'optionalAccess', _54 => _54.invoke, 'call', _55 => _55(n,p,a=>{a.status===void 0?t&&t({...a}):a.status==="success"?(m(a),this.receive({data:a})):E(a)})])}};s(f,"_instance");var N=f;var v=(t=>(t.APPROVED="Approved",t.REJECTED="Rejected",t))(v||{}),D= exports.EndlessSendTransactionType =(t=>(t.SIGNATURE_ONLY="signatureOnly",t.SIGN_AND_SUBMIT="signAndSubmit",t))(D||{}),S= exports.EndlessWalletTransactionType =(t=>(t.SIMPLE="simple",t.MULTI_AGENT="multiAgent",t))(S||{});var I=(c=>(c.CONNECT="connect",c.GETACCOUNT="getAccount",c.DISCONNECT="disconnect",c.NETWORK_CHANGE="luffa_switchChain",c.SIGN_MESSAGE="signMessage",c.SEND_TRANSACTION="sendTransaction",c.SIGN_AND_SUBMIT_TRANSACTION="signAndSubmitTransaction",c.SIGN_TRANSACTION="signTransaction",c.SIGN_BUILD_TRANSACTION="signBuildTransaction",c.EVM_APPROVE="evmApprove",c.ACCOUNT_CHANGE="accountChange",c))(I||{}),o=class o{constructor(e){s(this,"message",null);s(this,"_metadata",{});s(this,"_initData",{});s(this,"accountAddress",null);s(this,"_wallet",null);s(this,"request",(e,t)=>{_optionalChain([this, 'access', _56 => _56.message, 'optionalAccess', _57 => _57.sendMessage, 'call', _58 => _58({uuid:new Date().getTime().toString(),methodName:e.method,metadata:this._metadata,data:e.data,initData:_optionalChain([e, 'optionalAccess', _59 => _59.initData])},t)])});s(this,"getAccount",()=>new Promise(e=>{_optionalChain([this, 'access', _60 => _60.message, 'optionalAccess', _61 => _61.sendMessage, 'call', _62 => _62({uuid:new Date().getTime().toString(),methodName:"getAccount",metadata:this._metadata,data:{}},t=>{if(_optionalChain([t, 'optionalAccess', _63 => _63.account]))this.accountAddress=t.account,e([t.account]);else{let n={status:"Rejected",message:_optionalChain([t, 'optionalAccess', _64 => _64.message])||"Wallet is not connected"};e([])}})])}));s(this,"connect",()=>new Promise((e,t)=>{_optionalChain([this, 'access', _65 => _65.message, 'optionalAccess', _66 => _66.sendMessage, 'call', _67 => _67({uuid:new Date().getTime().toString(),methodName:"connect",metadata:this._metadata,data:{}},n=>{let i;_optionalChain([n, 'optionalAccess', _68 => _68.account])?(this._wallet.setAddress(n.account),this.accountAddress=n.account,i=[n.account],e(i)):(i={code:4001,message:"User rejected the request."},t(i))})])}));s(this,"disconnect",e=>new Promise((t,n)=>{_optionalChain([this, 'access', _69 => _69.message, 'optionalAccess', _70 => _70.sendMessage, 'call', _71 => _71({uuid:new Date().getTime().toString(),methodName:"disconnect",metadata:this._metadata,data:{}},i=>{this.accountAddress=null,e&&e(i),t()})])}));s(this,"signMessage",(e,t)=>new Promise(n=>{_optionalChain([this, 'access', _72 => _72.message, 'optionalAccess', _73 => _73.sendMessage, 'call', _74 => _74({uuid:new Date().getTime().toString(),methodName:"signMessage",metadata:this._metadata,data:e},i=>{if(_optionalChain([i, 'optionalAccess', _75 => _75.signature])){let d={status:"Approved",args:{fullMessage:e.message,signature:i.signature,publicKey:i.publicKey,nonce:"",message:e.message,prefix:"Endless"}};n(d)}else{let d={status:"Rejected",message:_optionalChain([i, 'optionalAccess', _76 => _76.message])};n(d)}t&&t(i)})])}));s(this,"on",(e,t)=>{_optionalChain([this, 'access', _77 => _77.message, 'optionalAccess', _78 => _78.addListener])&&_optionalChain([this, 'access', _79 => _79.message, 'optionalAccess', _80 => _80.addListener, 'call', _81 => _81(e,t)])});s(this,"off",(e,t)=>{_optionalChain([this, 'access', _82 => _82.message, 'optionalAccess', _83 => _83.removeListener])&&_optionalChain([this, 'access', _84 => _84.message, 'optionalAccess', _85 => _85.removeListener, 'call', _86 => _86(e,t)])});s(this,"signAndSubmitTransaction",e=>new Promise(async t=>{_optionalChain([this, 'access', _87 => _87.message, 'optionalAccess', _88 => _88.sendMessage, 'call', _89 => _89({uuid:new Date().getTime().toString(),methodName:"signAndSubmitTransaction",metadata:this._metadata,data:e},n=>{_optionalChain([n, 'optionalAccess', _90 => _90.hash])?t(n.hash):t({code:4001,message:_optionalChain([n, 'optionalAccess', _91 => _91.message])})})])}));s(this,"signTransaction",(e,t="signBuildTransaction")=>new Promise(async(n,i)=>{let d={raw_data_hex:e.raw_data_hex};e.to&&(d.to=e.to),_optionalChain([this, 'access', _92 => _92.message, 'optionalAccess', _93 => _93.sendMessage, 'call', _94 => _94({uuid:new Date().getTime().toString(),methodName:t,metadata:this._metadata,data:d},g=>{let p=_optionalChain([g, 'optionalAccess', _95 => _95.signature, 'optionalAccess', _96 => _96.split, 'call', _97 => _97(",")])||[];if(Array.isArray(p)&&p.length>0){let m={...e,signature:p};n(m)}else i("Confirmation declined by user")})])}));s(this,"onAccountChange",e=>{this.on("accountChange",e)});s(this,"onNetworkChange",e=>{this.on("luffa_switchChain",e)});if(o._instance)return o._instance;this.message=new N,this.getMetadata(),this.initConfig(e),o._instance=this}initConfig(e){this._initData.callbackWalletName="tronWallet",this._initData.network=e.network,l()}async sendTransaction(e){if(!this.accountAddress){let i=await this.connect();this.accountAddress=i[0]}let{isApprove:t,spender:n}=C(e);return t?(e.to=n,this.signTransaction(e,"evmApprove")):this.signTransaction(e)}changeNetwork(e){_optionalChain([this, 'access', _98 => _98.message, 'optionalAccess', _99 => _99.sendMessage, 'call', _100 => _100({uuid:new Date().getTime().toString(),methodName:"luffa_switchChain",metadata:this._metadata,data:{...e}})])}getMetadata(){if(!window)return;let t=_optionalChain([(document.querySelector('link[rel="icon"]')||document.querySelector('link[rel="shortcut icon"]')), 'optionalAccess', _101 => _101.getAttribute, 'call', _102 => _102("href")])||"";t&&!t.startsWith("http")&&(t=new URL(t,window.location.origin).href),this._metadata.title=window.document.title,this._metadata.url=window.location.href,this._metadata.origin=window.location.origin,this._metadata.icon=t}};s(o,"version","1.0.4"),s(o,"_instance"),s(o,"getIninData",()=>o._instance?o._instance._initData:{}),s(o,"getAccountAddress",()=>o._instance?o._instance.accountAddress:null),s(o,"setAccountAddress",e=>{o._instance&&(o._instance.accountAddress=e)});var u=o;exports.EndLessSDKEvent = h; exports.EndlessSendTransactionType = D; exports.EndlessWalletTransactionType = S; exports.LuffaTronSdk = u; exports.MethodName = I; exports.UserResponseStatus = v; exports.isLuffa = A; exports.isLuffaMiniProgram = l; exports.isLuffaMiniProgramWebview = T; //# sourceMappingURL=index.js.map