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