@soulbind/sdk
Version:
Soulbind SDK
2 lines (1 loc) • 6.97 kB
JavaScript
import{ConnectExtension as e}from"@magic-ext/connect";import t from"isomorphic-unfetch";import{Magic as r}from"magic-sdk";import n from"crypto-es";import{ethers as i}from"ethers";function s(){return s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},s.apply(this,arguments)}function o(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,a(e,t)}function a(e,t){return a=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},a(e,t)}var u,c,d,m;!function(e){e[e.IssuerOnly=0]="IssuerOnly",e[e.OwnerOnly=1]="OwnerOnly",e[e.Both=2]="Both",e[e.Neither=3]="Neither"}(u||(u={})),function(e){e[e.issued=0]="issued",e[e.claimed=1]="claimed",e[e.emailed=2]="emailed",e[e.burned=3]="burned"}(c||(c={})),function(e){e.entityExists="Entity already exists",e.entityDoesntExist="Entity does NOT exists",e.invalidRequest="Invalid request",e.unauthorized="Unauthorized"}(d||(d={})),function(e){e.delete="DELETE",e.get="GET",e.patch="PATCH",e.post="POST"}(m||(m={}));var h,l=/*#__PURE__*/function(){function n(e){this.apiKey=void 0,this.baseUrl=void 0,this.apiKey=e.apiKey,this.baseUrl=e.baseUrl||(e.testnet?"https://api-testnet.soulbind.app/api":"https://api.soulbind.app/api")}var i=n.prototype;return i.request=function(e,r){try{var n=""+this.baseUrl+e,i=s({},r,{headers:{"Content-Type":"application/json","soulbind-api-key":this.apiKey}});return Promise.resolve(t(n,i).then(function(e){if(e.ok)return e.json();throw new Error(e.statusText)}))}catch(e){return Promise.reject(e)}},i.startupMagic=function(){try{var n=this.baseUrl+"/v1/contract/network",i=s({},{method:m.get},{headers:{"Content-Type":"application/json","soulbind-api-key":this.apiKey}});return Promise.resolve(t(n,i).then(function(t){try{var n,i=function(e){if(n)return e;throw new Error(t.statusText)},s=function(){if(t.ok)return Promise.resolve(t.json()).then(function(t){var i=new r(t.success.magicKey,{extensions:[new e],network:t.success.network});return n=1,i})}();return Promise.resolve(s&&s.then?s.then(i):i(s))}catch(e){return Promise.reject(e)}}))}catch(e){return Promise.reject(e)}},n}(),p="/v1/contract",f=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}o(t,e);var r=t.prototype;return r.getAccountTokens=function(){return this.request(p+"/tenant/tokens",{method:m.get})},r.getAccountTokensFiltered=function(e,t,r,n){return this.request(p+"/created-tokens/"+e+"/"+t+"?message="+encodeURIComponent(r)+(n?"&tenantId="+n:""),{method:m.get})},r.getCreatedToken=function(e,t){return this.request(p+"/created-token/"+e,{method:m.post,body:t?JSON.stringify({tokenId:t}):null})},r.getCreatedTokenAsAdmin=function(e,t,r,n){return this.request(p+"/created-token/"+e,{method:m.post,body:JSON.stringify({address:t,signature:r,message:n})})},r.getTokens=function(e,t){var r;return t&&(r=Object.fromEntries(Object.entries(t).map(function(e){var t=e[0];return e[1]&&("organization"===t||"canClaim"===t?[t,!0]:[])}))),this.request(p+"/tokens/"+e+(r?"?"+new URLSearchParams(r).toString():""),{method:m.get})},r.validateClaimAuthAddress=function(e,t){return this.request(p+"/issued/"+e+"/"+t,{method:m.get})},r.validateClaimAuthCode=function(e,t){return this.request(p+"/issued-code/"+e+"/"+t,{method:m.get})},r.validateClaimedToken=function(e,t,r){return this.request(p+"/claimed/"+e+"/"+t+(r?"?bound="+r:""),{method:m.get})},r.addToIssued=function(e,t,r){try{return Promise.resolve(this.request(p+"/add-issued-to",{method:m.patch,body:JSON.stringify({eventId:e,addresses:t.addresses,codeCount:t.codeCount,signature:r.signature,message:r.message})}))}catch(e){return Promise.reject(e)}},r.bind=function(e,t,r,n,i){try{return Promise.resolve(this.request(p+"/bind",{method:m.patch,body:JSON.stringify({address:r,eventId:e,tokenId:t,signature:n,message:i})}))}catch(e){return Promise.reject(e)}},r.burn=function(e,t,r,n,i){try{return Promise.resolve(this.request(p+"/burn",{method:m.patch,body:JSON.stringify({address:r,eventId:e,tokenId:t,signature:n,message:i})}))}catch(e){return Promise.reject(e)}},r.claim=function(e,t,r,n,i){try{var s={signature:r,id:e,address:t,message:n};return i&&(s.uniqueCode=i),Promise.resolve(this.request(p+"/claim",{method:m.patch,body:JSON.stringify(s)}))}catch(e){return Promise.reject(e)}},r.drop=function(e,t,r){try{return Promise.resolve(this.request(p+"/drop",{method:m.patch,body:JSON.stringify({eventId:e,dropTo:t,signature:r.signature,message:r.message})}))}catch(e){return Promise.reject(e)}},r.increaseTokenLimit=function(e,t,r){try{return Promise.resolve(this.request(p+"/increase-token-limit",{method:m.patch,body:JSON.stringify({eventId:e,limitIncrease:t,signature:r.signature,message:r.message})}))}catch(e){return Promise.reject(e)}},r.update=function(e){try{return Promise.resolve(this.request(p+"/update",{method:m.patch,body:JSON.stringify(e)}))}catch(e){return Promise.reject(e)}},r.getSignatureMessage=function(e){var t=n.SHA256(n.lib.WordArray.random(16)).toString(n.enc.Base64),r="Signing confirms that you own this address:\n"+e+"\n~~Security~~\nTimestamp: "+Date.now()+"\nNonce: "+i.utils.keccak256(i.utils.toUtf8Bytes(t));return r+"\nHash: "+i.utils.keccak256(i.utils.toUtf8Bytes(r))},t}(l),g=/*#__PURE__*/function(e){function t(){for(var t,r=arguments.length,n=new Array(r),i=0;i<r;i++)n[i]=arguments[i];return(t=e.call.apply(e,[this].concat(n))||this).emailWalletAddress=void 0,t.emailProvider=void 0,t.emailSigner=void 0,t.magic=void 0,t}o(t,e);var r=t.prototype;return r.emailConnect=function(){try{var e=function(){return t.emailProvider=new i.providers.Web3Provider(t.magic.rpcProvider),t.emailSigner=t.emailProvider.getSigner(),Promise.resolve(t.emailSigner.getAddress()).then(function(e){return t.emailWalletAddress=e,t.emailWalletAddress})},t=this,r=function(){if(!t.magic)return Promise.resolve(t.startupMagic()).then(function(e){t.magic=e})}();return Promise.resolve(r&&r.then?r.then(e):e())}catch(e){return Promise.reject(e)}},r.emailDisconnect=function(){try{var e=function(){return t.emailWalletAddress=void 0,Promise.resolve(t.magic.connect.disconnect())},t=this,r=function(){if(!t.magic)return Promise.resolve(t.startupMagic()).then(function(e){t.magic=e})}();return Promise.resolve(r&&r.then?r.then(e):e())}catch(e){return Promise.reject(e)}},r.getEmailSignature=function(e){try{return this.emailSigner?Promise.resolve(this.emailSigner.signMessage(e)):Promise.resolve()}catch(e){return Promise.reject(e)}},r.getEmailWalletAddress=function(){return this.emailWalletAddress},t}(f),y=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return o(t,e),t}(l);h=y,[f,g].forEach(function(e){Object.getOwnPropertyNames(e.prototype).forEach(function(t){Object.defineProperty(h.prototype,t,Object.getOwnPropertyDescriptor(e.prototype,t))})});export{u as BurnAuth,c as ClaimStatus,d as ErrorCode,m as RequestMethod,y as default};