@imtbl/sdk 1.43.5-alpha.2 → 1.43.5

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.
Files changed (36) hide show
  1. package/dist/blockchain_data-08e66ad1.js +1 -0
  2. package/dist/blockchain_data.js +1 -1
  3. package/dist/browser/checkout/sdk.js +4 -4
  4. package/dist/{checkout-72eec63c.js → checkout-835624fb.js} +2 -2
  5. package/dist/{checkout.d-7613e722.d.ts → checkout.d-ae9ca847.d.ts} +0 -5
  6. package/dist/checkout.d.ts +1 -1
  7. package/dist/checkout.js +1 -1
  8. package/dist/{config-d87a2319.js → config-e6decb95.js} +1 -1
  9. package/dist/config.js +1 -1
  10. package/dist/{index-fd5abec4.js → index-1ff17202.js} +1 -1
  11. package/dist/{index-e1d8ce77.js → index-3c4d20df.js} +1 -1
  12. package/dist/index-7d2761cb.js +1 -0
  13. package/dist/index-974c422d.js +1 -0
  14. package/dist/index-cfadae12.js +1 -0
  15. package/dist/{index-7e641800.js → index-d7b7aff9.js} +1 -1
  16. package/dist/index.browser.js +4 -4
  17. package/dist/index.browser.js.map +1 -1
  18. package/dist/index.cjs +7 -12
  19. package/dist/index.d.ts +1 -1
  20. package/dist/index.js +1 -1
  21. package/dist/{minting_backend-929041e8.js → minting_backend-10ddbfd1.js} +1 -1
  22. package/dist/minting_backend.js +1 -1
  23. package/dist/{orderbook-99ea7b03.js → orderbook-10fe79b7.js} +1 -1
  24. package/dist/orderbook.js +1 -1
  25. package/dist/{passport-b97e7652.js → passport-e96a6719.js} +1 -1
  26. package/dist/passport.js +1 -1
  27. package/dist/webhook-8b165b7a.js +1 -0
  28. package/dist/webhook.js +1 -1
  29. package/dist/{x-f7c2f6d2.js → x-7dcaea97.js} +1 -1
  30. package/dist/x.js +1 -1
  31. package/package.json +1 -1
  32. package/dist/blockchain_data-4a9c13c2.js +0 -1
  33. package/dist/index-92dae7ab.js +0 -1
  34. package/dist/index-d3f538a4.js +0 -1
  35. package/dist/index-fffda076.js +0 -1
  36. package/dist/webhook-00229e18.js +0 -1
package/dist/passport.js CHANGED
@@ -1 +1 @@
1
- export{J as JsonRpcError,P as Passport,a as PassportError,b as ProviderErrorCode,c as ProviderEvent,R as RpcErrorCode}from"./passport-b97e7652.js";import"axios";import"./index-e1d8ce77.js";import"./index-d3f538a4.js";import"./index-92dae7ab.js";import"lru-memorise";import"global-const";import"@ethersproject/keccak256";import"@ethersproject/strings";import"bn.js";import"enc-utils";import"ethers";import"@ethersproject/bytes";import"hash.js";import"elliptic";import"ethereumjs-wallet";import"assert";import"@ethersproject/abstract-signer";import"oidc-client-ts";import"crypto";import"jwt-decode";import"magic-sdk";import"@magic-ext/oidc";import"@ethersproject/providers";import"events";import"@0xsequence/abi";import"@0xsequence/core";import"uuid";
1
+ export{J as JsonRpcError,P as Passport,a as PassportError,b as ProviderErrorCode,c as ProviderEvent,R as RpcErrorCode}from"./passport-e96a6719.js";import"axios";import"./index-3c4d20df.js";import"./index-974c422d.js";import"./index-cfadae12.js";import"lru-memorise";import"global-const";import"@ethersproject/keccak256";import"@ethersproject/strings";import"bn.js";import"enc-utils";import"ethers";import"@ethersproject/bytes";import"hash.js";import"elliptic";import"ethereumjs-wallet";import"assert";import"@ethersproject/abstract-signer";import"oidc-client-ts";import"crypto";import"jwt-decode";import"magic-sdk";import"@magic-ext/oidc";import"@ethersproject/providers";import"events";import"@0xsequence/abi";import"@0xsequence/core";import"uuid";
@@ -0,0 +1 @@
1
+ import{h as e}from"./index-d7b7aff9.js";var r=Object.freeze({__proto__:null,handle:e});export{r as w};
package/dist/webhook.js CHANGED
@@ -1 +1 @@
1
- export{h as handle}from"./index-7e641800.js";import"sns-validator";import"./index-92dae7ab.js";import"axios";import"lru-memorise";import"global-const";
1
+ export{h as handle}from"./index-d7b7aff9.js";import"sns-validator";import"./index-cfadae12.js";import"axios";import"lru-memorise";import"global-const";
@@ -1 +1 @@
1
- import{I as e,c as t,s as a,e as n,a as s,E as i,M as r,b as o,A as d,d as c,B as u,C as g,D as _,f as l,g as f,h as m,i as w,j as p,k as h,l as C,N as E,O as k,P as y,m as A,T as S,n as b,o as T,U as R,W as N,p as I,q as v,r as O,t as x,u as X,v as P,w as M,x as q,y as L,z as D}from"./index-d3f538a4.js";import{b as V}from"./index-e1d8ce77.js";import{isAxiosError as W}from"axios";import*as U from"enc-utils";import{parseUnits as G}from"@ethersproject/units";import{BigNumber as B}from"@ethersproject/bignumber";import{ethers as K}from"ethers";import Q from"@metamask/detect-provider";import{E as H,I as j}from"./index-92dae7ab.js";import{Signer as Y}from"@ethersproject/abstract-signer";async function Z(e,t){if(!function(e,t){return e===t.ethConfiguration.chainID}(await e.getChainId(),t))throw new Error("The wallet used for this operation is not connected to the correct network.")}async function $(e,t,a){await Z(t,a.immutableXConfig);const s=a.immutableXConfig,i=n.RegistrationV4.connect(s.ethConfiguration.registrationV4ContractAddress||s.ethConfiguration.registrationContractAddress,t);try{return await i.isRegistered(e)}catch(e){if("USER_UNREGISTERED"===e.reason)return!1;throw e}}const z=e=>{if(void 0!==e)return e;throw new Error("undefined field exception")};async function F(e,t,a,n){const s=new V.EncodingApi(a.apiConfiguration);return(await s.encodeAsset({assetType:e,encodeAssetRequest:{token:{type:t,...n&&{data:n}}}})).data}async function J(e,t,a,s){return n.CoreV4.connect(s.ethConfiguration.coreContractAddress,e).getWithdrawalBalance(t,a)}async function ee(e,t,a,n,s,i){switch(a.type){case"ETH":return await async function(e,t,a){const n=await F("asset","ETH",a);return await J(e,t,n.asset_id,a)}(e,t,i);case"ERC20":return await async function(e,t,a,n){const s=await F("asset","ERC20",n,{token_address:a});return await J(e,t,s.asset_id,n)}(e,t,a.tokenAddress,i);case"ERC721":return await async function(e,t,a,n,s,i){try{const n=await s.getMintableTokenDetailsByClientTokenId({tokenAddress:a.tokenAddress,tokenId:a.tokenId}),r=await F("mintable-asset","ERC721",i,{id:a.tokenId,token_address:a.tokenAddress,...n.data.blueprint&&{blueprint:n.data.blueprint}});return await J(e,t,r.asset_id,i)}catch(n){if(404===n.response?.status){const n=await F("asset","ERC721",i,{token_id:a.tokenId,token_address:a.tokenAddress});return await J(e,t,n.asset_id,i)}throw n}}(e,t,a,0,s,i);default:throw new Error("Unsupported token type")}}async function te(e,t,a,n,s){new i(s.apiConfiguration);const o=new r(s.apiConfiguration);return{v3Balance:await ee(e,t,n,0,o,s),v4Balance:await ee(e,a,n,0,o,s)}}const ae="ERC20";async function ne(e,t,a,s,i){const r=await e.getAddress(),d=await o(t,r,a),c=n.RegistrationV4.connect(i.ethConfiguration.registrationV4ContractAddress||i.ethConfiguration.registrationContractAddress,e),u=await c.populateTransaction.registerAndWithdrawAll(r,a,d,s);return e.sendTransaction(u)}async function se(e,t,a,s){const i=n.RegistrationV4.connect(s.ethConfiguration.registrationV4ContractAddress||s.ethConfiguration.registrationContractAddress,e),r=await i.populateTransaction.withdrawAll(await e.getAddress(),t,a);return e.sendTransaction(r)}async function ie(e,t,a,s){const i=n.CoreV4.connect(s.ethConfiguration.coreContractAddress,e),r=await i.populateTransaction.withdraw(await e.getAddress(),a);return e.sendTransaction(r)}const re="ERC721";function oe(e){const{id:t}=e.data,a=e.data.blueprint||"";return U.sanitizeHex(U.utf8ToHex(`{${t}}:{${a}}`))}async function de(e,t,a,s,i){return e.getMintableTokenDetailsByClientTokenId({tokenAddress:s.tokenAddress,tokenId:s.tokenId}).then((e=>async function(e,t,a,s){const i=await e.getAddress(),r=await t.getAddress(),d=await F("mintable-asset",re,s,{id:a.data.id,token_address:a.data.tokenAddress,...a.data.blueprint&&{blueprint:a.data.blueprint}}),c=oe(a),u=await o(t,i,r),g=n.RegistrationV4.connect(s.ethConfiguration.registrationV4ContractAddress||s.ethConfiguration.registrationContractAddress,e),_=await g.populateTransaction.registerWithdrawAndMint(i,r,u,d.asset_type,c);return e.sendTransaction(_)}(t,a,{type:re,data:{id:s.tokenId,tokenAddress:s.tokenAddress,blueprint:e.data.blueprint}},i))).catch((e=>{if(404===e.response?.status)return async function(e,t,a,s){const i=await e.getAddress(),r=await t.getAddress(),d=await F("asset",re,s,{token_id:a.tokenId,token_address:a.tokenAddress}),c=await o(t,i,r),u=n.RegistrationV4.connect(s.ethConfiguration.registrationV4ContractAddress||s.ethConfiguration.registrationContractAddress,e),g=await u.populateTransaction.registerAndWithdrawNft(i,r,c,d.asset_type,a.tokenId);return e.sendTransaction(g)}(t,a,s,i);throw e}))}async function ce(e,t,a,s,i){return e.getMintableTokenDetailsByClientTokenId({tokenAddress:s.tokenAddress,tokenId:s.tokenId}).then((e=>async function(e,t,a,s){const i=await F("mintable-asset",re,s,{id:a.data.id,token_address:a.data.tokenAddress,...a.data.blueprint&&{blueprint:a.data.blueprint}}),r=oe(a),o=n.CoreV4.connect(s.ethConfiguration.coreContractAddress,e),d=await o.populateTransaction.withdrawAndMint(t,i.asset_type,r);return e.sendTransaction(d)}(t,a,{type:re,data:{id:s.tokenId,tokenAddress:s.tokenAddress,blueprint:e.data.blueprint}},i))).catch((e=>{if(404===e.response?.status)return async function(e,t,a,s){const i=await F("asset",re,s,{token_id:a.tokenId,token_address:a.tokenAddress}),r=n.CoreV4.connect(s.ethConfiguration.coreContractAddress,e),o=await r.populateTransaction.withdrawNft(t,i.asset_type,a.tokenId);return e.sendTransaction(o)}(t,a,s,i);throw e}))}async function ue({ethSigner:e,starkSigner:t,starkPublicKey:a,token:n,config:s},r){await Z(e,s.immutableXConfig);const o=await e.getAddress(),{v3Balance:d,v4Balance:c}=await async function(e,t,a,n,s,r){return new i(s.apiConfiguration),{v3Balance:await ee(e,t,n,0,r,s),v4Balance:await ee(e,a,n,0,r,s)}}(e,a,o,{type:re,tokenAddress:n.tokenAddress,tokenId:n.tokenId},s.immutableXConfig,r);if(!d.isZero()&&!d.isNegative()){return await $(a,e,s)?ce(r,e,a,n,s.immutableXConfig):de(r,e,t,n,s.immutableXConfig)}if(!c.isZero()&&!c.isNegative())return ce(r,e,o,n,s.immutableXConfig);throw new Error("No balance to withdraw")}const ge="ETH";async function _e({signers:e,withdrawal:a,config:n}){const i=new V.WithdrawalsApi(n.immutableXConfig.apiConfiguration);return async function(e,a){const{signers:{ethSigner:n,starkSigner:i}}=e;await Z(n,e.config);const r="ERC721"===e.type?"1":e.amount,o=await a.getSignableWithdrawalV2({getSignableWithdrawalRequest:{user:await n.getAddress(),token:t(e),amount:r}}),{signable_message:d,payload_hash:c}=o.data,u=await i.signMessage(c),{ethAddress:g,ethSignature:_}=await s(d,n);return(await a.createWithdrawalV2({createWithdrawalRequestV2:{sender_stark_key:z(o.data.sender_stark_key),sender_vault_id:z(o.data.sender_vault_id),receiver_stark_key:z(o.data.receiver_stark_key),receiver_vault_id:z(o.data.receiver_vault_id),amount:r,asset_id:z(o.data.asset_id),expiration_timestamp:z(o.data.expiration_timestamp),nonce:z(o.data.nonce),stark_signature:u},xImxEthAddress:g,xImxEthSignature:_})).data}({signers:e,config:n.immutableXConfig,...a},i)}async function le({signers:{ethSigner:e,starkSigner:t},starkPublicKey:a,token:n,config:s}){const i=new V.MintsApi(s.immutableXConfig.apiConfiguration);switch(n.type){case"ETH":return async function({ethSigner:e,starkSigner:t,starkPublicKey:a,config:n}){await Z(e,n.immutableXConfig);const{v3Balance:s,v4Balance:i}=await te(e,a,await e.getAddress(),{type:ge},n.immutableXConfig),r=await F("asset",ge,n.immutableXConfig);if(!s.isZero()&&!s.isNegative())return await $(a,e,n)?se(e,a,r.asset_type,n.immutableXConfig):ne(e,t,a,r.asset_type,n.immutableXConfig);if(!i.isZero()&&!i.isNegative())return ie(e,0,r.asset_type,n.immutableXConfig);throw new Error("No balance to withdraw")}({ethSigner:e,starkSigner:t,starkPublicKey:a,config:s});case"ERC20":return async function({ethSigner:e,starkSigner:t,starkPublicKey:a,token:n,config:s}){await Z(e,s.immutableXConfig);const{v3Balance:i,v4Balance:r}=await te(e,a,await e.getAddress(),{type:ae,tokenAddress:n.tokenAddress},s.immutableXConfig),o=await F("asset",ae,s.immutableXConfig,{token_address:n.tokenAddress});if(!i.isZero()&&!i.isNegative())return await $(a,e,s)?se(e,a,o.asset_type,s.immutableXConfig):ne(e,t,a,o.asset_type,s.immutableXConfig);if(!r.isZero()&&!r.isNegative())return ie(e,0,o.asset_type,s.immutableXConfig);throw new Error("No balance to withdraw")}({ethSigner:e,starkSigner:t,starkPublicKey:a,token:n,config:s});case"ERC721":return ue({ethSigner:e,starkSigner:t,starkPublicKey:a,token:n,config:s},i)}}async function fe({signers:{ethSigner:e},deposit:t,config:a}){await Z(e,a.immutableXConfig);const s=await e.getAddress(),i=G(t.amount,"wei"),r=a.immutableXConfig,o=new V.DepositsApi(r.apiConfiguration),d=new V.EncodingApi(r.apiConfiguration),c={user:s,token:{type:t.type,data:{decimals:18}},amount:i.toString()},u=await o.getSignableDeposit({getSignableDepositRequest:c});return async function(e,t,a,s,i,r){const o=n.CoreV4.connect(r.ethConfiguration.coreContractAddress,e),d=await o.populateTransaction["deposit(uint256,uint256,uint256)"](s,a,i);return e.sendTransaction({...d,value:t})}(e,i,(await d.encodeAsset({assetType:"asset",encodeAssetRequest:{token:{type:t.type}}})).data.asset_type,u.data.stark_key,u.data.vault_id,r)}async function me({signers:{ethSigner:e},deposit:t,config:a}){await Z(e,a.immutableXConfig);const{apiConfiguration:s,ethConfiguration:i}=a.immutableXConfig,r=await e.getAddress(),o=new V.TokensApi(s),d=new V.DepositsApi(s),c=new V.EncodingApi(s),u=await o.getToken({address:t.tokenAddress}),g={decimals:parseInt(u.data.decimals),token_address:t.tokenAddress},_=G(t.amount,0),l=n.IERC20.connect(t.tokenAddress,e),f=await l.populateTransaction.approve(i.coreContractAddress,_);await e.sendTransaction(f);const m={user:r,token:{type:t.type,data:g},amount:_.toString()},w=await d.getSignableDeposit({getSignableDepositRequest:m}),p=(await c.encodeAsset({assetType:"asset",encodeAssetRequest:{token:{type:t.type,data:{token_address:t.tokenAddress}}}})).data.asset_type,h=w.data.stark_key,C=w.data.vault_id;return async function(e,t,a,s,i,r){const o=n.CoreV4.connect(r.coreContractAddress,e),d=await o.populateTransaction.depositERC20(s,a,i,t);return e.sendTransaction(d)}(e,B.from(w.data.amount),p,h,C,i)}async function we({signers:{ethSigner:e},deposit:t,config:a}){await Z(e,a.immutableXConfig);const s=await e.getAddress(),{immutableXConfig:i}=a,r=new V.DepositsApi(i.apiConfiguration),o=new V.EncodingApi(i.apiConfiguration),d={token_address:t.tokenAddress,token_id:t.tokenId},c={user:s,token:{type:t.type,data:d},amount:"1".toString()},u=await r.getSignableDeposit({getSignableDepositRequest:c}),g=(await o.encodeAsset({assetType:"asset",encodeAssetRequest:{token:{type:t.type,data:{token_address:t.tokenAddress,token_id:t.tokenId}}}})).data.asset_type,_=u.data.stark_key,l=u.data.vault_id,f=n.IERC721.connect(t.tokenAddress,e),m=i.ethConfiguration.coreContractAddress;return await f.isApprovedForAll(s,m)||await f.setApprovalForAll(m,!0),async function(e,t,a,s,i,r){const o=n.CoreV4.connect(r.ethConfiguration.coreContractAddress,e),d=await o.populateTransaction.depositNft(s,a,i,t);return e.sendTransaction(d)}(e,t.tokenId,g,_,l,i)}class pe{config;signers;constructor(e,t,a){this.config=e,this.signers={ethSigner:t,starkSigner:a}}async getAddress(){return this.signers.ethSigner.getAddress()}async isRegisteredOffchain(){return async function(e,t){try{const a=new V.UsersApi(t.immutableXConfig.apiConfiguration),n=await a.getUsers({user:e}),{accounts:s}=n.data;return s?.length>0}catch(e){if(W(e)&&404===e.response?.status)return!1;throw e}}(await this.getAddress(),this.config)}registerOffchain(){return async function(e,t){await Z(e.ethSigner,t.immutableXConfig);const n=new V.UsersApi(t.immutableXConfig.apiConfiguration),s=await e.ethSigner.getAddress(),i=await e.starkSigner.getAddress(),r=await n.getSignableRegistrationOffchain({getSignableRegistrationRequest:{ether_key:s,stark_key:i}}),{signable_message:o,payload_hash:d}=r.data,c=await a(o,e.ethSigner),u=await e.starkSigner.signMessage(d);return(await n.registerUser({registerUserRequest:{eth_signature:c,ether_key:s,stark_signature:u,stark_key:i}})).data}(this.signers,this.config)}batchNftTransfer(e){return async function({signers:{ethSigner:e,starkSigner:n},request:s,config:i}){await Z(e,i.immutableXConfig);const r=await e.getAddress(),o=new V.TransfersApi(i.immutableXConfig.apiConfiguration),d=s.map((e=>({amount:"1",token:t({type:"ERC721",tokenId:e.tokenId,tokenAddress:e.tokenAddress}),receiver:e.receiver}))),c=await o.getSignableTransfer({getSignableTransferRequestV2:{sender_ether_key:r,signable_requests:d}}),u=c.data.signable_message;if(void 0===u)throw new Error("Invalid response from Signable registration offchain");const g=await a(u,e),_=[];for(const e of c.data.signable_responses){const t=await n.signMessage(e.payload_hash),a={sender_vault_id:e.sender_vault_id,receiver_stark_key:e.receiver_stark_key,receiver_vault_id:e.receiver_vault_id,asset_id:e.asset_id,amount:e.amount,nonce:e.nonce,expiration_timestamp:e.expiration_timestamp,stark_signature:t};_.push(a)}const l={sender_stark_key:c.data.sender_stark_key,requests:_},f=await o.createTransfer({createTransferRequestV2:l,xImxEthAddress:r,xImxEthSignature:g});return{transfer_ids:f?.data.transfer_ids}}({signers:this.signers,request:e,config:this.config})}cancelOrder(e){return async function({signers:e,request:t,config:n}){const s=new V.OrdersApi(n.immutableXConfig.apiConfiguration),i=await s.getSignableCancelOrderV3({getSignableCancelOrderRequest:{order_id:t.order_id}}),{signable_message:r,payload_hash:o}=i.data,d=await a(r,e.ethSigner),c=await e.starkSigner.signMessage(o),u=await e.ethSigner.getAddress(),g=await s.cancelOrderV3({id:t.order_id.toString(),cancelOrderRequest:{order_id:t.order_id,stark_signature:c},xImxEthAddress:u,xImxEthSignature:d});return{order_id:g.data.order_id,status:g.data.status}}({signers:this.signers,request:e,config:this.config})}completeWithdrawal(e,t){return le({config:this.config,signers:this.signers,token:t,starkPublicKey:e})}createOrder(e){return async function({signers:e,request:n,config:s}){await Z(e.ethSigner,s.immutableXConfig);const i=await e.ethSigner.getAddress(),r=new V.OrdersApi(s.immutableXConfig.apiConfiguration),o="ERC721"===n.sell.type?"1":n.sell.amount,d={user:i,amount_buy:"ERC721"===n.buy.type?"1":n.buy.amount,token_buy:t(n.buy),amount_sell:o,token_sell:t(n.sell),fees:n.fees,expiration_timestamp:n.expiration_timestamp},c=await r.getSignableOrder({getSignableOrderRequestV3:d}),{signable_message:u,payload_hash:g}=c.data,_=await a(u,e.ethSigner),l=await e.starkSigner.signMessage(g),f=c.data,m={createOrderRequest:{amount_buy:f.amount_buy,amount_sell:f.amount_sell,asset_id_buy:f.asset_id_buy,asset_id_sell:f.asset_id_sell,expiration_timestamp:f.expiration_timestamp,fees:n.fees,nonce:f.nonce,stark_key:f.stark_key,stark_signature:l,vault_id_buy:f.vault_id_buy,vault_id_sell:f.vault_id_sell},xImxEthAddress:i,xImxEthSignature:_};return{...(await r.createOrderV3(m)).data}}({signers:this.signers,request:e,config:this.config})}createTrade(e){return async function({signers:{ethSigner:e,starkSigner:t},request:n,config:s}){await Z(e,s.immutableXConfig);const i=await e.getAddress(),r=new V.TradesApi(s.immutableXConfig.apiConfiguration),o=await r.getSignableTrade({getSignableTradeRequest:{user:i,order_id:n.order_id,fees:n.fees}}),{signable_message:d,payload_hash:c}=o.data,u=await a(d,e),g=await t.signMessage(c);return(await r.createTradeV3({createTradeRequest:{amount_buy:o.data.amount_buy,amount_sell:o.data.amount_sell,asset_id_buy:o.data.asset_id_buy,asset_id_sell:o.data.asset_id_sell,expiration_timestamp:o.data.expiration_timestamp,fee_info:o.data.fee_info,fees:n.fees,include_fees:!0,nonce:o.data.nonce,order_id:n.order_id,stark_key:o.data.stark_key,vault_id_buy:o.data.vault_id_buy,vault_id_sell:o.data.vault_id_sell,stark_signature:g},xImxEthAddress:i,xImxEthSignature:u})).data}({signers:this.signers,request:e,config:this.config})}deposit(e){return async function({signers:e,deposit:t,config:a}){switch(t.type){case"ETH":return fe({signers:e,deposit:t,config:a});case"ERC20":return me({signers:e,deposit:t,config:a});case"ERC721":return we({signers:e,deposit:t,config:a})}}({signers:this.signers,deposit:e,config:this.config})}exchangeTransfer(e){return async function({signers:e,request:n,config:s}){await Z(e.ethSigner,s.immutableXConfig);const i=new V.ExchangesApi(s.immutableXConfig.apiConfiguration),r=await e.ethSigner.getAddress(),o=n.amount,d=await i.getExchangeSignableTransfer({id:n.transactionID,getSignableTransferRequest:{sender:r,token:t(n),amount:o,receiver:n.receiver}}),{signable_message:c,payload_hash:u}=d.data,g=await a(c,e.ethSigner),_=await e.starkSigner.signMessage(u),l={sender_stark_key:d.data.sender_stark_key,sender_vault_id:d.data.sender_vault_id,receiver_stark_key:d.data.receiver_stark_key,receiver_vault_id:d.data.receiver_vault_id,asset_id:d.data.asset_id,amount:d.data.amount,nonce:d.data.nonce,expiration_timestamp:d.data.expiration_timestamp,stark_signature:_},f=await i.createExchangeTransfer({id:n.transactionID,createTransferRequest:l,xImxEthAddress:r,xImxEthSignature:g});return{sent_signature:f?.data.sent_signature,status:f?.data.status?.toString(),time:f?.data.time,transfer_id:f?.data.transfer_id}}({signers:this.signers,request:e,config:this.config})}async isRegisteredOnchain(){return $(await this.signers.starkSigner.getAddress(),this.signers.ethSigner,this.config)}prepareWithdrawal(e){return _e({signers:this.signers,withdrawal:e,config:this.config})}transfer(e){return async function({signers:{ethSigner:e,starkSigner:n},request:s,config:i}){await Z(e,i.immutableXConfig);const r=await e.getAddress(),o=new V.TransfersApi(i.immutableXConfig.apiConfiguration),d="ERC721"===s.type?"1":s.amount,c=await o.getSignableTransferV1({getSignableTransferRequest:{sender:r,token:t(s),amount:d,receiver:s.receiver}}),{signable_message:u,payload_hash:g}=c.data,_=await a(u,e),l=await n.signMessage(g),f={sender_stark_key:c.data.sender_stark_key,sender_vault_id:c.data.sender_vault_id,receiver_stark_key:c.data.receiver_stark_key,receiver_vault_id:c.data.receiver_vault_id,asset_id:c.data.asset_id,amount:c.data.amount,nonce:c.data.nonce,expiration_timestamp:c.data.expiration_timestamp,stark_signature:l},m=await o.createTransferV1({createTransferRequest:f,xImxEthAddress:r,xImxEthSignature:_});return{sent_signature:m?.data.sent_signature,status:m?.data.status?.toString(),time:m?.data.time,transfer_id:m?.data.transfer_id}}({signers:this.signers,request:e,config:this.config})}}const he={SWITCH_CHAIN:"wallet_switchEthereumChain",CONNECT:"eth_requestAccounts"};const Ce="The Metamask provider was not found";async function Ee({chainID:e}){const t=await Q();if(!function(e){return!!e?.request}(t))throw new Error(Ce);return await async function(e,t){await e.request({method:he.CONNECT}),t&&await e.request({method:he.SWITCH_CHAIN,params:[{chainId:`0x${t.toString(16)}`}]})}(t,e),new K.providers.Web3Provider(t)}const ke="message";var ye,Ae;function Se(e,t){e&&e.contentWindow&&e.contentWindow.postMessage(t,new URL(e.src).origin)}function be(e,t,a,n){if(e&&t.source!==e.contentWindow)return;const s=t.data;s.type===a&&n(s.details)}!function(e){e.GET_CONNECTION_REQUEST="GET_CONNECTION_REQUEST",e.CONNECT_WALLET_REQUEST="CONNECT_WALLET_REQUEST",e.SIGN_MESSAGE_REQUEST="SIGN_MESSAGE_REQUEST",e.DISCONNECT_WALLET_REQUEST="DISCONNECT_WALLET_REQUEST",e.GET_Y_COORDINATE_REQUEST="GET_Y_COORDINATE_REQUEST"}(ye||(ye={})),function(e){e.CONNECT_WALLET_RESPONSE="CONNECT_WALLET_RESPONSE",e.SIGN_MESSAGE_RESPONSE="SIGN_MESSAGE_RESPONSE",e.GET_CONNECTION_RESPONSE="GET_CONNECTION_RESPONSE",e.DISCONNECT_WALLET_RESPONSE="DISCONNECT_WALLET_RESPONSE",e.GET_Y_COORDINATE_RESPONSE="GET_Y_COORDINATE_RESPONSE"}(Ae||(Ae={}));class Te{publicAddress;iframe;constructor(e,t){this.publicAddress=e,this.iframe=t}getAddress(){return this.publicAddress}signMessage(e){return new Promise(((t,a)=>{const n=e=>{be(this.iframe,e,Ae.SIGN_MESSAGE_RESPONSE,(e=>{window.removeEventListener(ke,n),e.success||a(new Error(e.error?.message)),t(e.data.signedMessage)}))};window.addEventListener(ke,n),Se(this.iframe,{type:ye.SIGN_MESSAGE_REQUEST,details:{starkPublicKey:this.publicAddress,message:e}})}))}getIFrame(){return this.iframe}getYCoordinate(){return new Promise(((e,t)=>{const a=n=>{be(this.iframe,n,Ae.GET_Y_COORDINATE_RESPONSE,(n=>{window.removeEventListener(ke,a),n.success||t(new Error(n.error?.message)),e(n.data.yCoordinate)}))};window.addEventListener(ke,a),Se(this.iframe,{type:ye.GET_Y_COORDINATE_REQUEST,details:{starkPublicKey:this.publicAddress}})}))}}const Re="imx-wallet-app",Ne={[H.SANDBOX]:"https://wallets.sandbox.immutable.com",[H.PRODUCTION]:"https://wallets.immutable.com"},Ie="display: none;";async function ve(e){const t=document.querySelector(`iframe#${Re}`);return t||await async function(e){return new Promise((t=>{const a=document.createElement("iframe");a.setAttribute("id",Re),a.setAttribute("src",Ne[e]),a.setAttribute("style",Ie),document.body.appendChild(a),a.onload=()=>t(a)}))}(e)}var Oe;!function(e){e.PROVIDER_CONNECTION_ERROR="PROVIDER_CONNECTION_ERROR",e.WALLET_CONNECTION_ERROR="WALLET_CONNECTION_ERROR"}(Oe||(Oe={}));class xe extends Error{type;constructor(e,t){super(e),this.type=t}}const Xe=async(e,t)=>{try{return await e()}catch(e){const a=t.message||`${e.message}`||"UnknownError";throw new xe(a,t.type)}};class Pe extends pe{static imxSigner;static async connect(e){return await Xe((async()=>{const t=await Ee({chainID:e.immutableXConfig.ethConfiguration.chainID});return this.imxSigner=await async function(e,t){const a=e.getSigner(),n=await a.getAddress(),s=await a.signMessage("Only sign this request if you’ve initiated an action with Immutable X."),i=await ve(t);return new Promise(((e,t)=>{const a=n=>{be(i,n,Ae.CONNECT_WALLET_RESPONSE,(n=>{window.removeEventListener(ke,a),n.success||t(new Error("The L2 IMX Wallet connection has failed")),e(new Te(n.data.starkPublicKey,i))}))};window.addEventListener(ke,a),Se(i,{type:ye.CONNECT_WALLET_REQUEST,details:{ethAddress:n,signature:s}})}))}(t,e.baseConfig.environment),new Pe(e,t.getSigner(),this.imxSigner)}),{type:Oe.WALLET_CONNECTION_ERROR})}static async disconnect(){if(!this.imxSigner)throw new xe("Attempted to disconnect from the MetaMask IMX provider without an established connection",Oe.PROVIDER_CONNECTION_ERROR);return Xe((async()=>{await async function(e){const t=e.getIFrame();return new Promise(((a,n)=>{const s=e=>{be(t,e,Ae.DISCONNECT_WALLET_RESPONSE,(e=>{window.removeEventListener(ke,s),!e.success&&e.error&&n(e.error),t.remove(),a()}))};window.addEventListener(ke,s),Se(t,{type:ye.DISCONNECT_WALLET_REQUEST,details:{starkPublicKey:e.getAddress()}})}))}(this.imxSigner)}),{type:Oe.PROVIDER_CONNECTION_ERROR})}static async signMessage(e){if(!this.imxSigner)throw new xe("Attempted to sign a message with the MetaMask IMX provider without an established connection",Oe.PROVIDER_CONNECTION_ERROR);return Xe((async()=>await this.imxSigner.signMessage(e)),{type:Oe.PROVIDER_CONNECTION_ERROR})}}class Me{immutableXConfig;baseConfig;constructor({baseConfig:t,overrides:a}){if(this.baseConfig=t,a)this.immutableXConfig=a.immutableXConfig;else{const a=new e({baseConfig:t});this.immutableXConfig=a.immutableXConfig}}}var qe=Object.freeze({__proto__:null,ApiConfiguration:d,AssetsApi:c,BalancesApi:u,CollectionsApi:g,Contracts:n,DepositsApi:_,EncodingApi:i,get Environment(){return H},EthSigner:Y,ExchangesApi:l,GenericIMXProvider:pe,IMXClient:f,IMXError:m,ImmutableConfiguration:j,ImmutableX:w,ImxConfiguration:e,MetaMaskIMXProvider:Pe,MetadataApi:p,MetadataRefreshesApi:h,MetadataSchemaRequestTypeEnum:C,MintsApi:r,NftCheckoutPrimaryApi:E,OrdersApi:k,PrimarySalesApi:y,ProjectsApi:A,ProviderConfiguration:Me,TokensApi:S,TradesApi:b,TransfersApi:T,UsersApi:R,WithdrawalsApi:N,createConfig:I,createImmutableXConfiguration:v,createStarkSigner:O,generateLegacyStarkPrivateKey:x,generateStarkPrivateKey:X,imxClientConfig:P,imxClientCreateStarkSigner:O,imxClientGenerateLegacyStarkPrivateKey:x,production:M,sandbox:q,serializePackedSignature:L,signRegisterEthAddress:o,starkEcOrder:D});export{pe as G,Pe as M,Me as P,qe as x};
1
+ import{I as e,c as t,s as a,e as n,a as s,E as i,M as r,b as o,A as d,d as c,B as u,C as g,D as _,f as l,g as f,h as m,i as w,j as p,k as h,l as C,N as E,O as k,P as y,m as A,T as S,n as b,o as T,U as R,W as N,p as I,q as v,r as O,t as x,u as X,v as P,w as M,x as q,y as L,z as D}from"./index-974c422d.js";import{b as V}from"./index-3c4d20df.js";import{isAxiosError as W}from"axios";import*as U from"enc-utils";import{parseUnits as G}from"@ethersproject/units";import{BigNumber as B}from"@ethersproject/bignumber";import{ethers as K}from"ethers";import Q from"@metamask/detect-provider";import{E as H,I as j}from"./index-cfadae12.js";import{Signer as Y}from"@ethersproject/abstract-signer";async function Z(e,t){if(!function(e,t){return e===t.ethConfiguration.chainID}(await e.getChainId(),t))throw new Error("The wallet used for this operation is not connected to the correct network.")}async function $(e,t,a){await Z(t,a.immutableXConfig);const s=a.immutableXConfig,i=n.RegistrationV4.connect(s.ethConfiguration.registrationV4ContractAddress||s.ethConfiguration.registrationContractAddress,t);try{return await i.isRegistered(e)}catch(e){if("USER_UNREGISTERED"===e.reason)return!1;throw e}}const z=e=>{if(void 0!==e)return e;throw new Error("undefined field exception")};async function F(e,t,a,n){const s=new V.EncodingApi(a.apiConfiguration);return(await s.encodeAsset({assetType:e,encodeAssetRequest:{token:{type:t,...n&&{data:n}}}})).data}async function J(e,t,a,s){return n.CoreV4.connect(s.ethConfiguration.coreContractAddress,e).getWithdrawalBalance(t,a)}async function ee(e,t,a,n,s,i){switch(a.type){case"ETH":return await async function(e,t,a){const n=await F("asset","ETH",a);return await J(e,t,n.asset_id,a)}(e,t,i);case"ERC20":return await async function(e,t,a,n){const s=await F("asset","ERC20",n,{token_address:a});return await J(e,t,s.asset_id,n)}(e,t,a.tokenAddress,i);case"ERC721":return await async function(e,t,a,n,s,i){try{const n=await s.getMintableTokenDetailsByClientTokenId({tokenAddress:a.tokenAddress,tokenId:a.tokenId}),r=await F("mintable-asset","ERC721",i,{id:a.tokenId,token_address:a.tokenAddress,...n.data.blueprint&&{blueprint:n.data.blueprint}});return await J(e,t,r.asset_id,i)}catch(n){if(404===n.response?.status){const n=await F("asset","ERC721",i,{token_id:a.tokenId,token_address:a.tokenAddress});return await J(e,t,n.asset_id,i)}throw n}}(e,t,a,0,s,i);default:throw new Error("Unsupported token type")}}async function te(e,t,a,n,s){new i(s.apiConfiguration);const o=new r(s.apiConfiguration);return{v3Balance:await ee(e,t,n,0,o,s),v4Balance:await ee(e,a,n,0,o,s)}}const ae="ERC20";async function ne(e,t,a,s,i){const r=await e.getAddress(),d=await o(t,r,a),c=n.RegistrationV4.connect(i.ethConfiguration.registrationV4ContractAddress||i.ethConfiguration.registrationContractAddress,e),u=await c.populateTransaction.registerAndWithdrawAll(r,a,d,s);return e.sendTransaction(u)}async function se(e,t,a,s){const i=n.RegistrationV4.connect(s.ethConfiguration.registrationV4ContractAddress||s.ethConfiguration.registrationContractAddress,e),r=await i.populateTransaction.withdrawAll(await e.getAddress(),t,a);return e.sendTransaction(r)}async function ie(e,t,a,s){const i=n.CoreV4.connect(s.ethConfiguration.coreContractAddress,e),r=await i.populateTransaction.withdraw(await e.getAddress(),a);return e.sendTransaction(r)}const re="ERC721";function oe(e){const{id:t}=e.data,a=e.data.blueprint||"";return U.sanitizeHex(U.utf8ToHex(`{${t}}:{${a}}`))}async function de(e,t,a,s,i){return e.getMintableTokenDetailsByClientTokenId({tokenAddress:s.tokenAddress,tokenId:s.tokenId}).then((e=>async function(e,t,a,s){const i=await e.getAddress(),r=await t.getAddress(),d=await F("mintable-asset",re,s,{id:a.data.id,token_address:a.data.tokenAddress,...a.data.blueprint&&{blueprint:a.data.blueprint}}),c=oe(a),u=await o(t,i,r),g=n.RegistrationV4.connect(s.ethConfiguration.registrationV4ContractAddress||s.ethConfiguration.registrationContractAddress,e),_=await g.populateTransaction.registerWithdrawAndMint(i,r,u,d.asset_type,c);return e.sendTransaction(_)}(t,a,{type:re,data:{id:s.tokenId,tokenAddress:s.tokenAddress,blueprint:e.data.blueprint}},i))).catch((e=>{if(404===e.response?.status)return async function(e,t,a,s){const i=await e.getAddress(),r=await t.getAddress(),d=await F("asset",re,s,{token_id:a.tokenId,token_address:a.tokenAddress}),c=await o(t,i,r),u=n.RegistrationV4.connect(s.ethConfiguration.registrationV4ContractAddress||s.ethConfiguration.registrationContractAddress,e),g=await u.populateTransaction.registerAndWithdrawNft(i,r,c,d.asset_type,a.tokenId);return e.sendTransaction(g)}(t,a,s,i);throw e}))}async function ce(e,t,a,s,i){return e.getMintableTokenDetailsByClientTokenId({tokenAddress:s.tokenAddress,tokenId:s.tokenId}).then((e=>async function(e,t,a,s){const i=await F("mintable-asset",re,s,{id:a.data.id,token_address:a.data.tokenAddress,...a.data.blueprint&&{blueprint:a.data.blueprint}}),r=oe(a),o=n.CoreV4.connect(s.ethConfiguration.coreContractAddress,e),d=await o.populateTransaction.withdrawAndMint(t,i.asset_type,r);return e.sendTransaction(d)}(t,a,{type:re,data:{id:s.tokenId,tokenAddress:s.tokenAddress,blueprint:e.data.blueprint}},i))).catch((e=>{if(404===e.response?.status)return async function(e,t,a,s){const i=await F("asset",re,s,{token_id:a.tokenId,token_address:a.tokenAddress}),r=n.CoreV4.connect(s.ethConfiguration.coreContractAddress,e),o=await r.populateTransaction.withdrawNft(t,i.asset_type,a.tokenId);return e.sendTransaction(o)}(t,a,s,i);throw e}))}async function ue({ethSigner:e,starkSigner:t,starkPublicKey:a,token:n,config:s},r){await Z(e,s.immutableXConfig);const o=await e.getAddress(),{v3Balance:d,v4Balance:c}=await async function(e,t,a,n,s,r){return new i(s.apiConfiguration),{v3Balance:await ee(e,t,n,0,r,s),v4Balance:await ee(e,a,n,0,r,s)}}(e,a,o,{type:re,tokenAddress:n.tokenAddress,tokenId:n.tokenId},s.immutableXConfig,r);if(!d.isZero()&&!d.isNegative()){return await $(a,e,s)?ce(r,e,a,n,s.immutableXConfig):de(r,e,t,n,s.immutableXConfig)}if(!c.isZero()&&!c.isNegative())return ce(r,e,o,n,s.immutableXConfig);throw new Error("No balance to withdraw")}const ge="ETH";async function _e({signers:e,withdrawal:a,config:n}){const i=new V.WithdrawalsApi(n.immutableXConfig.apiConfiguration);return async function(e,a){const{signers:{ethSigner:n,starkSigner:i}}=e;await Z(n,e.config);const r="ERC721"===e.type?"1":e.amount,o=await a.getSignableWithdrawalV2({getSignableWithdrawalRequest:{user:await n.getAddress(),token:t(e),amount:r}}),{signable_message:d,payload_hash:c}=o.data,u=await i.signMessage(c),{ethAddress:g,ethSignature:_}=await s(d,n);return(await a.createWithdrawalV2({createWithdrawalRequestV2:{sender_stark_key:z(o.data.sender_stark_key),sender_vault_id:z(o.data.sender_vault_id),receiver_stark_key:z(o.data.receiver_stark_key),receiver_vault_id:z(o.data.receiver_vault_id),amount:r,asset_id:z(o.data.asset_id),expiration_timestamp:z(o.data.expiration_timestamp),nonce:z(o.data.nonce),stark_signature:u},xImxEthAddress:g,xImxEthSignature:_})).data}({signers:e,config:n.immutableXConfig,...a},i)}async function le({signers:{ethSigner:e,starkSigner:t},starkPublicKey:a,token:n,config:s}){const i=new V.MintsApi(s.immutableXConfig.apiConfiguration);switch(n.type){case"ETH":return async function({ethSigner:e,starkSigner:t,starkPublicKey:a,config:n}){await Z(e,n.immutableXConfig);const{v3Balance:s,v4Balance:i}=await te(e,a,await e.getAddress(),{type:ge},n.immutableXConfig),r=await F("asset",ge,n.immutableXConfig);if(!s.isZero()&&!s.isNegative())return await $(a,e,n)?se(e,a,r.asset_type,n.immutableXConfig):ne(e,t,a,r.asset_type,n.immutableXConfig);if(!i.isZero()&&!i.isNegative())return ie(e,0,r.asset_type,n.immutableXConfig);throw new Error("No balance to withdraw")}({ethSigner:e,starkSigner:t,starkPublicKey:a,config:s});case"ERC20":return async function({ethSigner:e,starkSigner:t,starkPublicKey:a,token:n,config:s}){await Z(e,s.immutableXConfig);const{v3Balance:i,v4Balance:r}=await te(e,a,await e.getAddress(),{type:ae,tokenAddress:n.tokenAddress},s.immutableXConfig),o=await F("asset",ae,s.immutableXConfig,{token_address:n.tokenAddress});if(!i.isZero()&&!i.isNegative())return await $(a,e,s)?se(e,a,o.asset_type,s.immutableXConfig):ne(e,t,a,o.asset_type,s.immutableXConfig);if(!r.isZero()&&!r.isNegative())return ie(e,0,o.asset_type,s.immutableXConfig);throw new Error("No balance to withdraw")}({ethSigner:e,starkSigner:t,starkPublicKey:a,token:n,config:s});case"ERC721":return ue({ethSigner:e,starkSigner:t,starkPublicKey:a,token:n,config:s},i)}}async function fe({signers:{ethSigner:e},deposit:t,config:a}){await Z(e,a.immutableXConfig);const s=await e.getAddress(),i=G(t.amount,"wei"),r=a.immutableXConfig,o=new V.DepositsApi(r.apiConfiguration),d=new V.EncodingApi(r.apiConfiguration),c={user:s,token:{type:t.type,data:{decimals:18}},amount:i.toString()},u=await o.getSignableDeposit({getSignableDepositRequest:c});return async function(e,t,a,s,i,r){const o=n.CoreV4.connect(r.ethConfiguration.coreContractAddress,e),d=await o.populateTransaction["deposit(uint256,uint256,uint256)"](s,a,i);return e.sendTransaction({...d,value:t})}(e,i,(await d.encodeAsset({assetType:"asset",encodeAssetRequest:{token:{type:t.type}}})).data.asset_type,u.data.stark_key,u.data.vault_id,r)}async function me({signers:{ethSigner:e},deposit:t,config:a}){await Z(e,a.immutableXConfig);const{apiConfiguration:s,ethConfiguration:i}=a.immutableXConfig,r=await e.getAddress(),o=new V.TokensApi(s),d=new V.DepositsApi(s),c=new V.EncodingApi(s),u=await o.getToken({address:t.tokenAddress}),g={decimals:parseInt(u.data.decimals),token_address:t.tokenAddress},_=G(t.amount,0),l=n.IERC20.connect(t.tokenAddress,e),f=await l.populateTransaction.approve(i.coreContractAddress,_);await e.sendTransaction(f);const m={user:r,token:{type:t.type,data:g},amount:_.toString()},w=await d.getSignableDeposit({getSignableDepositRequest:m}),p=(await c.encodeAsset({assetType:"asset",encodeAssetRequest:{token:{type:t.type,data:{token_address:t.tokenAddress}}}})).data.asset_type,h=w.data.stark_key,C=w.data.vault_id;return async function(e,t,a,s,i,r){const o=n.CoreV4.connect(r.coreContractAddress,e),d=await o.populateTransaction.depositERC20(s,a,i,t);return e.sendTransaction(d)}(e,B.from(w.data.amount),p,h,C,i)}async function we({signers:{ethSigner:e},deposit:t,config:a}){await Z(e,a.immutableXConfig);const s=await e.getAddress(),{immutableXConfig:i}=a,r=new V.DepositsApi(i.apiConfiguration),o=new V.EncodingApi(i.apiConfiguration),d={token_address:t.tokenAddress,token_id:t.tokenId},c={user:s,token:{type:t.type,data:d},amount:"1".toString()},u=await r.getSignableDeposit({getSignableDepositRequest:c}),g=(await o.encodeAsset({assetType:"asset",encodeAssetRequest:{token:{type:t.type,data:{token_address:t.tokenAddress,token_id:t.tokenId}}}})).data.asset_type,_=u.data.stark_key,l=u.data.vault_id,f=n.IERC721.connect(t.tokenAddress,e),m=i.ethConfiguration.coreContractAddress;return await f.isApprovedForAll(s,m)||await f.setApprovalForAll(m,!0),async function(e,t,a,s,i,r){const o=n.CoreV4.connect(r.ethConfiguration.coreContractAddress,e),d=await o.populateTransaction.depositNft(s,a,i,t);return e.sendTransaction(d)}(e,t.tokenId,g,_,l,i)}class pe{config;signers;constructor(e,t,a){this.config=e,this.signers={ethSigner:t,starkSigner:a}}async getAddress(){return this.signers.ethSigner.getAddress()}async isRegisteredOffchain(){return async function(e,t){try{const a=new V.UsersApi(t.immutableXConfig.apiConfiguration),n=await a.getUsers({user:e}),{accounts:s}=n.data;return s?.length>0}catch(e){if(W(e)&&404===e.response?.status)return!1;throw e}}(await this.getAddress(),this.config)}registerOffchain(){return async function(e,t){await Z(e.ethSigner,t.immutableXConfig);const n=new V.UsersApi(t.immutableXConfig.apiConfiguration),s=await e.ethSigner.getAddress(),i=await e.starkSigner.getAddress(),r=await n.getSignableRegistrationOffchain({getSignableRegistrationRequest:{ether_key:s,stark_key:i}}),{signable_message:o,payload_hash:d}=r.data,c=await a(o,e.ethSigner),u=await e.starkSigner.signMessage(d);return(await n.registerUser({registerUserRequest:{eth_signature:c,ether_key:s,stark_signature:u,stark_key:i}})).data}(this.signers,this.config)}batchNftTransfer(e){return async function({signers:{ethSigner:e,starkSigner:n},request:s,config:i}){await Z(e,i.immutableXConfig);const r=await e.getAddress(),o=new V.TransfersApi(i.immutableXConfig.apiConfiguration),d=s.map((e=>({amount:"1",token:t({type:"ERC721",tokenId:e.tokenId,tokenAddress:e.tokenAddress}),receiver:e.receiver}))),c=await o.getSignableTransfer({getSignableTransferRequestV2:{sender_ether_key:r,signable_requests:d}}),u=c.data.signable_message;if(void 0===u)throw new Error("Invalid response from Signable registration offchain");const g=await a(u,e),_=[];for(const e of c.data.signable_responses){const t=await n.signMessage(e.payload_hash),a={sender_vault_id:e.sender_vault_id,receiver_stark_key:e.receiver_stark_key,receiver_vault_id:e.receiver_vault_id,asset_id:e.asset_id,amount:e.amount,nonce:e.nonce,expiration_timestamp:e.expiration_timestamp,stark_signature:t};_.push(a)}const l={sender_stark_key:c.data.sender_stark_key,requests:_},f=await o.createTransfer({createTransferRequestV2:l,xImxEthAddress:r,xImxEthSignature:g});return{transfer_ids:f?.data.transfer_ids}}({signers:this.signers,request:e,config:this.config})}cancelOrder(e){return async function({signers:e,request:t,config:n}){const s=new V.OrdersApi(n.immutableXConfig.apiConfiguration),i=await s.getSignableCancelOrderV3({getSignableCancelOrderRequest:{order_id:t.order_id}}),{signable_message:r,payload_hash:o}=i.data,d=await a(r,e.ethSigner),c=await e.starkSigner.signMessage(o),u=await e.ethSigner.getAddress(),g=await s.cancelOrderV3({id:t.order_id.toString(),cancelOrderRequest:{order_id:t.order_id,stark_signature:c},xImxEthAddress:u,xImxEthSignature:d});return{order_id:g.data.order_id,status:g.data.status}}({signers:this.signers,request:e,config:this.config})}completeWithdrawal(e,t){return le({config:this.config,signers:this.signers,token:t,starkPublicKey:e})}createOrder(e){return async function({signers:e,request:n,config:s}){await Z(e.ethSigner,s.immutableXConfig);const i=await e.ethSigner.getAddress(),r=new V.OrdersApi(s.immutableXConfig.apiConfiguration),o="ERC721"===n.sell.type?"1":n.sell.amount,d={user:i,amount_buy:"ERC721"===n.buy.type?"1":n.buy.amount,token_buy:t(n.buy),amount_sell:o,token_sell:t(n.sell),fees:n.fees,expiration_timestamp:n.expiration_timestamp},c=await r.getSignableOrder({getSignableOrderRequestV3:d}),{signable_message:u,payload_hash:g}=c.data,_=await a(u,e.ethSigner),l=await e.starkSigner.signMessage(g),f=c.data,m={createOrderRequest:{amount_buy:f.amount_buy,amount_sell:f.amount_sell,asset_id_buy:f.asset_id_buy,asset_id_sell:f.asset_id_sell,expiration_timestamp:f.expiration_timestamp,fees:n.fees,nonce:f.nonce,stark_key:f.stark_key,stark_signature:l,vault_id_buy:f.vault_id_buy,vault_id_sell:f.vault_id_sell},xImxEthAddress:i,xImxEthSignature:_};return{...(await r.createOrderV3(m)).data}}({signers:this.signers,request:e,config:this.config})}createTrade(e){return async function({signers:{ethSigner:e,starkSigner:t},request:n,config:s}){await Z(e,s.immutableXConfig);const i=await e.getAddress(),r=new V.TradesApi(s.immutableXConfig.apiConfiguration),o=await r.getSignableTrade({getSignableTradeRequest:{user:i,order_id:n.order_id,fees:n.fees}}),{signable_message:d,payload_hash:c}=o.data,u=await a(d,e),g=await t.signMessage(c);return(await r.createTradeV3({createTradeRequest:{amount_buy:o.data.amount_buy,amount_sell:o.data.amount_sell,asset_id_buy:o.data.asset_id_buy,asset_id_sell:o.data.asset_id_sell,expiration_timestamp:o.data.expiration_timestamp,fee_info:o.data.fee_info,fees:n.fees,include_fees:!0,nonce:o.data.nonce,order_id:n.order_id,stark_key:o.data.stark_key,vault_id_buy:o.data.vault_id_buy,vault_id_sell:o.data.vault_id_sell,stark_signature:g},xImxEthAddress:i,xImxEthSignature:u})).data}({signers:this.signers,request:e,config:this.config})}deposit(e){return async function({signers:e,deposit:t,config:a}){switch(t.type){case"ETH":return fe({signers:e,deposit:t,config:a});case"ERC20":return me({signers:e,deposit:t,config:a});case"ERC721":return we({signers:e,deposit:t,config:a})}}({signers:this.signers,deposit:e,config:this.config})}exchangeTransfer(e){return async function({signers:e,request:n,config:s}){await Z(e.ethSigner,s.immutableXConfig);const i=new V.ExchangesApi(s.immutableXConfig.apiConfiguration),r=await e.ethSigner.getAddress(),o=n.amount,d=await i.getExchangeSignableTransfer({id:n.transactionID,getSignableTransferRequest:{sender:r,token:t(n),amount:o,receiver:n.receiver}}),{signable_message:c,payload_hash:u}=d.data,g=await a(c,e.ethSigner),_=await e.starkSigner.signMessage(u),l={sender_stark_key:d.data.sender_stark_key,sender_vault_id:d.data.sender_vault_id,receiver_stark_key:d.data.receiver_stark_key,receiver_vault_id:d.data.receiver_vault_id,asset_id:d.data.asset_id,amount:d.data.amount,nonce:d.data.nonce,expiration_timestamp:d.data.expiration_timestamp,stark_signature:_},f=await i.createExchangeTransfer({id:n.transactionID,createTransferRequest:l,xImxEthAddress:r,xImxEthSignature:g});return{sent_signature:f?.data.sent_signature,status:f?.data.status?.toString(),time:f?.data.time,transfer_id:f?.data.transfer_id}}({signers:this.signers,request:e,config:this.config})}async isRegisteredOnchain(){return $(await this.signers.starkSigner.getAddress(),this.signers.ethSigner,this.config)}prepareWithdrawal(e){return _e({signers:this.signers,withdrawal:e,config:this.config})}transfer(e){return async function({signers:{ethSigner:e,starkSigner:n},request:s,config:i}){await Z(e,i.immutableXConfig);const r=await e.getAddress(),o=new V.TransfersApi(i.immutableXConfig.apiConfiguration),d="ERC721"===s.type?"1":s.amount,c=await o.getSignableTransferV1({getSignableTransferRequest:{sender:r,token:t(s),amount:d,receiver:s.receiver}}),{signable_message:u,payload_hash:g}=c.data,_=await a(u,e),l=await n.signMessage(g),f={sender_stark_key:c.data.sender_stark_key,sender_vault_id:c.data.sender_vault_id,receiver_stark_key:c.data.receiver_stark_key,receiver_vault_id:c.data.receiver_vault_id,asset_id:c.data.asset_id,amount:c.data.amount,nonce:c.data.nonce,expiration_timestamp:c.data.expiration_timestamp,stark_signature:l},m=await o.createTransferV1({createTransferRequest:f,xImxEthAddress:r,xImxEthSignature:_});return{sent_signature:m?.data.sent_signature,status:m?.data.status?.toString(),time:m?.data.time,transfer_id:m?.data.transfer_id}}({signers:this.signers,request:e,config:this.config})}}const he={SWITCH_CHAIN:"wallet_switchEthereumChain",CONNECT:"eth_requestAccounts"};const Ce="The Metamask provider was not found";async function Ee({chainID:e}){const t=await Q();if(!function(e){return!!e?.request}(t))throw new Error(Ce);return await async function(e,t){await e.request({method:he.CONNECT}),t&&await e.request({method:he.SWITCH_CHAIN,params:[{chainId:`0x${t.toString(16)}`}]})}(t,e),new K.providers.Web3Provider(t)}const ke="message";var ye,Ae;function Se(e,t){e&&e.contentWindow&&e.contentWindow.postMessage(t,new URL(e.src).origin)}function be(e,t,a,n){if(e&&t.source!==e.contentWindow)return;const s=t.data;s.type===a&&n(s.details)}!function(e){e.GET_CONNECTION_REQUEST="GET_CONNECTION_REQUEST",e.CONNECT_WALLET_REQUEST="CONNECT_WALLET_REQUEST",e.SIGN_MESSAGE_REQUEST="SIGN_MESSAGE_REQUEST",e.DISCONNECT_WALLET_REQUEST="DISCONNECT_WALLET_REQUEST",e.GET_Y_COORDINATE_REQUEST="GET_Y_COORDINATE_REQUEST"}(ye||(ye={})),function(e){e.CONNECT_WALLET_RESPONSE="CONNECT_WALLET_RESPONSE",e.SIGN_MESSAGE_RESPONSE="SIGN_MESSAGE_RESPONSE",e.GET_CONNECTION_RESPONSE="GET_CONNECTION_RESPONSE",e.DISCONNECT_WALLET_RESPONSE="DISCONNECT_WALLET_RESPONSE",e.GET_Y_COORDINATE_RESPONSE="GET_Y_COORDINATE_RESPONSE"}(Ae||(Ae={}));class Te{publicAddress;iframe;constructor(e,t){this.publicAddress=e,this.iframe=t}getAddress(){return this.publicAddress}signMessage(e){return new Promise(((t,a)=>{const n=e=>{be(this.iframe,e,Ae.SIGN_MESSAGE_RESPONSE,(e=>{window.removeEventListener(ke,n),e.success||a(new Error(e.error?.message)),t(e.data.signedMessage)}))};window.addEventListener(ke,n),Se(this.iframe,{type:ye.SIGN_MESSAGE_REQUEST,details:{starkPublicKey:this.publicAddress,message:e}})}))}getIFrame(){return this.iframe}getYCoordinate(){return new Promise(((e,t)=>{const a=n=>{be(this.iframe,n,Ae.GET_Y_COORDINATE_RESPONSE,(n=>{window.removeEventListener(ke,a),n.success||t(new Error(n.error?.message)),e(n.data.yCoordinate)}))};window.addEventListener(ke,a),Se(this.iframe,{type:ye.GET_Y_COORDINATE_REQUEST,details:{starkPublicKey:this.publicAddress}})}))}}const Re="imx-wallet-app",Ne={[H.SANDBOX]:"https://wallets.sandbox.immutable.com",[H.PRODUCTION]:"https://wallets.immutable.com"},Ie="display: none;";async function ve(e){const t=document.querySelector(`iframe#${Re}`);return t||await async function(e){return new Promise((t=>{const a=document.createElement("iframe");a.setAttribute("id",Re),a.setAttribute("src",Ne[e]),a.setAttribute("style",Ie),document.body.appendChild(a),a.onload=()=>t(a)}))}(e)}var Oe;!function(e){e.PROVIDER_CONNECTION_ERROR="PROVIDER_CONNECTION_ERROR",e.WALLET_CONNECTION_ERROR="WALLET_CONNECTION_ERROR"}(Oe||(Oe={}));class xe extends Error{type;constructor(e,t){super(e),this.type=t}}const Xe=async(e,t)=>{try{return await e()}catch(e){const a=t.message||`${e.message}`||"UnknownError";throw new xe(a,t.type)}};class Pe extends pe{static imxSigner;static async connect(e){return await Xe((async()=>{const t=await Ee({chainID:e.immutableXConfig.ethConfiguration.chainID});return this.imxSigner=await async function(e,t){const a=e.getSigner(),n=await a.getAddress(),s=await a.signMessage("Only sign this request if you’ve initiated an action with Immutable X."),i=await ve(t);return new Promise(((e,t)=>{const a=n=>{be(i,n,Ae.CONNECT_WALLET_RESPONSE,(n=>{window.removeEventListener(ke,a),n.success||t(new Error("The L2 IMX Wallet connection has failed")),e(new Te(n.data.starkPublicKey,i))}))};window.addEventListener(ke,a),Se(i,{type:ye.CONNECT_WALLET_REQUEST,details:{ethAddress:n,signature:s}})}))}(t,e.baseConfig.environment),new Pe(e,t.getSigner(),this.imxSigner)}),{type:Oe.WALLET_CONNECTION_ERROR})}static async disconnect(){if(!this.imxSigner)throw new xe("Attempted to disconnect from the MetaMask IMX provider without an established connection",Oe.PROVIDER_CONNECTION_ERROR);return Xe((async()=>{await async function(e){const t=e.getIFrame();return new Promise(((a,n)=>{const s=e=>{be(t,e,Ae.DISCONNECT_WALLET_RESPONSE,(e=>{window.removeEventListener(ke,s),!e.success&&e.error&&n(e.error),t.remove(),a()}))};window.addEventListener(ke,s),Se(t,{type:ye.DISCONNECT_WALLET_REQUEST,details:{starkPublicKey:e.getAddress()}})}))}(this.imxSigner)}),{type:Oe.PROVIDER_CONNECTION_ERROR})}static async signMessage(e){if(!this.imxSigner)throw new xe("Attempted to sign a message with the MetaMask IMX provider without an established connection",Oe.PROVIDER_CONNECTION_ERROR);return Xe((async()=>await this.imxSigner.signMessage(e)),{type:Oe.PROVIDER_CONNECTION_ERROR})}}class Me{immutableXConfig;baseConfig;constructor({baseConfig:t,overrides:a}){if(this.baseConfig=t,a)this.immutableXConfig=a.immutableXConfig;else{const a=new e({baseConfig:t});this.immutableXConfig=a.immutableXConfig}}}var qe=Object.freeze({__proto__:null,ApiConfiguration:d,AssetsApi:c,BalancesApi:u,CollectionsApi:g,Contracts:n,DepositsApi:_,EncodingApi:i,get Environment(){return H},EthSigner:Y,ExchangesApi:l,GenericIMXProvider:pe,IMXClient:f,IMXError:m,ImmutableConfiguration:j,ImmutableX:w,ImxConfiguration:e,MetaMaskIMXProvider:Pe,MetadataApi:p,MetadataRefreshesApi:h,MetadataSchemaRequestTypeEnum:C,MintsApi:r,NftCheckoutPrimaryApi:E,OrdersApi:k,PrimarySalesApi:y,ProjectsApi:A,ProviderConfiguration:Me,TokensApi:S,TradesApi:b,TransfersApi:T,UsersApi:R,WithdrawalsApi:N,createConfig:I,createImmutableXConfiguration:v,createStarkSigner:O,generateLegacyStarkPrivateKey:x,generateStarkPrivateKey:X,imxClientConfig:P,imxClientCreateStarkSigner:O,imxClientGenerateLegacyStarkPrivateKey:x,production:M,sandbox:q,serializePackedSignature:L,signRegisterEthAddress:o,starkEcOrder:D});export{pe as G,Pe as M,Me as P,qe as x};
package/dist/x.js CHANGED
@@ -1 +1 @@
1
- export{A as ApiConfiguration,d as AssetsApi,B as BalancesApi,C as CollectionsApi,e as Contracts,D as DepositsApi,E as EncodingApi,f as ExchangesApi,g as IMXClient,h as IMXError,i as ImmutableX,I as ImxConfiguration,j as MetadataApi,k as MetadataRefreshesApi,l as MetadataSchemaRequestTypeEnum,M as MintsApi,N as NftCheckoutPrimaryApi,O as OrdersApi,P as PrimarySalesApi,m as ProjectsApi,T as TokensApi,n as TradesApi,o as TransfersApi,U as UsersApi,W as WithdrawalsApi,p as createConfig,q as createImmutableXConfiguration,r as createStarkSigner,t as generateLegacyStarkPrivateKey,u as generateStarkPrivateKey,v as imxClientConfig,r as imxClientCreateStarkSigner,t as imxClientGenerateLegacyStarkPrivateKey,w as production,x as sandbox,y as serializePackedSignature,b as signRegisterEthAddress,z as starkEcOrder}from"./index-d3f538a4.js";export{G as GenericIMXProvider,M as MetaMaskIMXProvider,P as ProviderConfiguration}from"./x-f7c2f6d2.js";export{E as Environment,I as ImmutableConfiguration}from"./index-92dae7ab.js";export{Signer as EthSigner}from"@ethersproject/abstract-signer";import"./index-e1d8ce77.js";import"axios";import"@ethersproject/keccak256";import"@ethersproject/strings";import"bn.js";import"enc-utils";import"ethers";import"@ethersproject/bytes";import"hash.js";import"elliptic";import"ethereumjs-wallet";import"assert";import"@ethersproject/units";import"@ethersproject/bignumber";import"@metamask/detect-provider";import"lru-memorise";import"global-const";
1
+ export{A as ApiConfiguration,d as AssetsApi,B as BalancesApi,C as CollectionsApi,e as Contracts,D as DepositsApi,E as EncodingApi,f as ExchangesApi,g as IMXClient,h as IMXError,i as ImmutableX,I as ImxConfiguration,j as MetadataApi,k as MetadataRefreshesApi,l as MetadataSchemaRequestTypeEnum,M as MintsApi,N as NftCheckoutPrimaryApi,O as OrdersApi,P as PrimarySalesApi,m as ProjectsApi,T as TokensApi,n as TradesApi,o as TransfersApi,U as UsersApi,W as WithdrawalsApi,p as createConfig,q as createImmutableXConfiguration,r as createStarkSigner,t as generateLegacyStarkPrivateKey,u as generateStarkPrivateKey,v as imxClientConfig,r as imxClientCreateStarkSigner,t as imxClientGenerateLegacyStarkPrivateKey,w as production,x as sandbox,y as serializePackedSignature,b as signRegisterEthAddress,z as starkEcOrder}from"./index-974c422d.js";export{G as GenericIMXProvider,M as MetaMaskIMXProvider,P as ProviderConfiguration}from"./x-7dcaea97.js";export{E as Environment,I as ImmutableConfiguration}from"./index-cfadae12.js";export{Signer as EthSigner}from"@ethersproject/abstract-signer";import"./index-3c4d20df.js";import"axios";import"@ethersproject/keccak256";import"@ethersproject/strings";import"bn.js";import"enc-utils";import"ethers";import"@ethersproject/bytes";import"hash.js";import"elliptic";import"ethereumjs-wallet";import"assert";import"@ethersproject/units";import"@ethersproject/bignumber";import"@metamask/detect-provider";import"lru-memorise";import"global-const";
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@imtbl/sdk",
3
3
  "description": "Immutable Typescript SDK",
4
- "version": "1.43.5-alpha.2",
4
+ "version": "1.43.5",
5
5
  "author": "Immutable",
6
6
  "browser": "./dist/index.browser.js",
7
7
  "bugs": "https://github.com/immutable/ts-immutable-sdk/issues",
@@ -1 +0,0 @@
1
- import{A as r,B as a}from"./index-fffda076.js";import{i as o}from"./index-e1d8ce77.js";var e=Object.freeze({__proto__:null,APIError:r,BlockchainData:a,Types:o});export{e as b};
@@ -1 +0,0 @@
1
- import e from"axios";import{memorise as t}from"lru-memorise";import{getGlobalisedValue as n}from"global-const";const r=()=>"undefined"==typeof window,i=()=>!r();var o;!function(e){e.RUNTIME_ID="rid",e.PASSPORT_CLIENT_ID="passportClientId",e.ENVIRONMENT="env",e.PUBLISHABLE_API_KEY="pak",e.IDENTITY="uid",e.DOMAIN="domain",e.SDK_VERSION="sdkVersion"}(o||(o={}));async function s(t,n){const r=e.create({baseURL:"https://api.immutable.com"}),i=JSON.stringify(n),o={payload:Buffer.from(i).toString("base64")};return(await r.post(t,o)).data}const a=()=>i()&&window.localStorage,c=e=>`__IMX-${e}`;function d(e){if(a())return(e=>{if(null!==e)try{return JSON.parse(e)}catch(t){return e}})(window.localStorage.getItem(c(e)))}const l=(e,t)=>!!a()&&(window.localStorage.setItem(c(e),(e=>"string"==typeof e?e:JSON.stringify(e))(t)),!0);var u;let m,f;!function(e){e.EVENTS="events",e.RUNTIME="runtime"}(u||(u={}));m=d(u.EVENTS)||[],f=d(u.RUNTIME)||{};const p=(e,t)=>{f={...f,[e]:t},l(u.RUNTIME,f)},w=e=>{if(void 0!==f[e])return f[e]},I=e=>{const t=[];return Object.entries(e).forEach((([e,n])=>{"string"!=typeof e&&"string"!=typeof n&&"number"!=typeof n&&"boolean"!=typeof n||t.push([e,n.toString()])})),t},h="1.43.5-alpha.2",E=()=>{if(r())return"";let e;try{window.self!==window.top&&(e=r()?"":window.location.ancestorOrigins&&window.location.ancestorOrigins.length>0?new URL(window.location.ancestorOrigins[0]).hostname:document.referrer?new URL(window.document.referrer).hostname:"")}catch(e){}return e||(e=window.location.hostname),e};let y=!1;const g=async()=>{y=!0;try{const e=I((()=>{if(p(o.SDK_VERSION,h),r())return{browser:"nodejs",sdkVersion:h};const e=E();return e&&p(o.DOMAIN,e),{sdkVersion:h,browser:window.navigator.userAgent,domain:e,tz:Intl.DateTimeFormat().resolvedOptions().timeZone,screen:`${window.screen.width}x${window.screen.height}`}})()),t={version:1,data:{runtimeDetails:e,runtimeId:w(o.RUNTIME_ID)}},n=await s("/v1/sdk/initialise",t),{runtimeId:i}=n;p(o.RUNTIME_ID,i)}catch(e){y=!1}};function b(e,t){return(...n)=>{try{const r=e(...n);return r instanceof Promise?r.catch((()=>t)):r}catch(e){return t}}}const S=b((function(){return!i()&&("undefined"!=typeof process&&void 0!==process.env.JEST_WORKER_ID)}),!1),N="imtbl__metrics",T=(e,t)=>n(N,e,t),K=b(((e,r)=>{const i=t(r,{lruOptions:{ttl:5e3,max:1e3}});return n(N,e,i)})("track",((e,t,n)=>{(e=>{m.push(e),l(u.EVENTS,m)})({event:`${e}.${t}`,time:(new Date).toISOString(),...n&&{properties:I(n)}})}))),_=b((async()=>{if(!1===y)return void await g();const e=m;if(0===e.length)return;const t=e.length,n={version:1,data:{events:e,details:f}};var r;await s("/v1/sdk/metrics",n)instanceof Error||(r=t,m=m.slice(r),l(u.EVENTS,m))})),v=async()=>{await _(),setTimeout(v,5e3)};let L=!1;const O=()=>{L||(L=!0,v())};S()||b(T("startFlushing",O))();const A=(e,t,n,r)=>K(e,t,{...r||{},duration:n}),R=(...e)=>{if(!e.some((e=>!!e)))return;let t={};return e.forEach((e=>{e&&(t={...t,...e})})),t},D=(e,t)=>`${e}_${t}`,M=b(((e,t,n)=>{const r=D(t,"start"),i=(()=>{const e=()=>Math.floor(65536*(1+Math.random())).toString(16).substring(1);return`${e()}${e()}-${e()}-${e()}-${e()}-${e()}${e()}${e()}`})(),o=performance.now(),s=Math.round(o+performance.timeOrigin);let a=R(n,{flowId:i,flowStartTime:s});A(e,r,0,a);return{details:{moduleName:e,flowName:t,flowId:i,flowStartTime:s},addEvent:b(((n,r)=>{const c=D(t,n),d=Math.round(performance.now()-o),l=R(a,r,{flowId:i,flowStartTime:s,duration:d});A(e,c,d,l)})),addFlowProperties:b((e=>{a=R(a,e,{flowId:i,flowStartTime:s})})),end:b((n=>{const r=D(t,"end"),c=Math.round(performance.now()-o),d=R(a,n,{flowId:i,flowStartTime:s});A(e,r,c,d)}))}})),P=b((e=>{const t=(e=>{if(e.passportId)return`passport:${e.passportId.toLowerCase()}`;if(e.ethAddress)return`ethAddress:${e.ethAddress.toLowerCase()}`;throw new Error("invalid_identity")})(e);t&&(p(o.IDENTITY,t),K("metrics","identify",e.traits))})),$=b(T("setEnvironment",(e=>{p(o.ENVIRONMENT,e)}))),U=b(T("setPassportClientId",(e=>{p(o.PASSPORT_CLIENT_ID,e)}))),V=b(T("setPublishableApiKey",(e=>{p(o.PUBLISHABLE_API_KEY,e)}))),k=b(T("getDetail",w));var B,Y;!function(e){e.PRODUCTION="production",e.SANDBOX="sandbox"}(B||(B={})),function(e){e.API_KEY="x-immutable-api-key",e.PUBLISHABLE_KEY="x-immutable-publishable-key",e.RATE_LIMITING_KEY="x-api-key"}(Y||(Y={}));class x{environment;rateLimitingKey;apiKey;publishableKey;constructor(e){this.environment=e.environment,this.publishableKey=e.publishableKey,this.apiKey=e.apiKey,this.rateLimitingKey=e.rateLimitingKey,$(e.environment),K("config","created_imtbl_config")}}const C=(e,t)=>{if(!e||!e.apiKey&&!e.publishableKey&&!e.rateLimitingKey)return t;const n={};return e.apiKey&&(n[Y.API_KEY]=e.apiKey),e.publishableKey&&(n[Y.PUBLISHABLE_KEY]=e.publishableKey,V(e.publishableKey)),e.rateLimitingKey&&(n[Y.RATE_LIMITING_KEY]=e.rateLimitingKey),t&&t.headers?{...t,headers:{...n,...t.headers}}:{...t,headers:n}};export{o as D,B as E,x as I,Y as K,C as a,V as b,U as c,M as d,A as e,k as g,P as i,$ as s,K as t};