UNPKG

@soulbind/sdk

Version:

Soulbind SDK

2 lines (1 loc) 7.58 kB
var e=require("@magic-ext/connect"),t=require("isomorphic-unfetch"),r=require("magic-sdk"),n=require("crypto-es"),s=require("ethers");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var i,u,a,c,d=/*#__PURE__*/o(t),h=/*#__PURE__*/o(n);function p(){return p=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},p.apply(this,arguments)}function m(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,l(e,t)}function l(e,t){return l=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},l(e,t)}exports.BurnAuth=void 0,(i=exports.BurnAuth||(exports.BurnAuth={}))[i.IssuerOnly=0]="IssuerOnly",i[i.OwnerOnly=1]="OwnerOnly",i[i.Both=2]="Both",i[i.Neither=3]="Neither",exports.ClaimStatus=void 0,(u=exports.ClaimStatus||(exports.ClaimStatus={}))[u.issued=0]="issued",u[u.claimed=1]="claimed",u[u.emailed=2]="emailed",u[u.burned=3]="burned",exports.ErrorCode=void 0,(a=exports.ErrorCode||(exports.ErrorCode={})).entityExists="Entity already exists",a.entityDoesntExist="Entity does NOT exists",a.invalidRequest="Invalid request",a.unauthorized="Unauthorized",exports.RequestMethod=void 0,(c=exports.RequestMethod||(exports.RequestMethod={})).delete="DELETE",c.get="GET",c.patch="PATCH",c.post="POST";var f,g=/*#__PURE__*/function(){function t(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 n=t.prototype;return n.request=function(e,t){try{var r=""+this.baseUrl+e,n=p({},t,{headers:{"Content-Type":"application/json","soulbind-api-key":this.apiKey}});return Promise.resolve(d.default(r,n).then(function(e){if(e.ok)return e.json();throw new Error(e.statusText)}))}catch(e){return Promise.reject(e)}},n.startupMagic=function(){try{var t=this.baseUrl+"/v1/contract/network",n=p({},{method:exports.RequestMethod.get},{headers:{"Content-Type":"application/json","soulbind-api-key":this.apiKey}});return Promise.resolve(d.default(t,n).then(function(t){try{var n,s=function(e){if(n)return e;throw new Error(t.statusText)},o=function(){if(t.ok)return Promise.resolve(t.json()).then(function(t){var s=new r.Magic(t.success.magicKey,{extensions:[new e.ConnectExtension],network:t.success.network});return n=1,s})}();return Promise.resolve(o&&o.then?o.then(s):s(o))}catch(e){return Promise.reject(e)}}))}catch(e){return Promise.reject(e)}},t}(),y="/v1/contract",v=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}m(t,e);var r=t.prototype;return r.getAccountTokens=function(){return this.request(y+"/tenant/tokens",{method:exports.RequestMethod.get})},r.getAccountTokensFiltered=function(e,t,r,n){return this.request(y+"/created-tokens/"+e+"/"+t+"?message="+encodeURIComponent(r)+(n?"&tenantId="+n:""),{method:exports.RequestMethod.get})},r.getCreatedToken=function(e,t){return this.request(y+"/created-token/"+e,{method:exports.RequestMethod.post,body:t?JSON.stringify({tokenId:t}):null})},r.getCreatedTokenAsAdmin=function(e,t,r,n){return this.request(y+"/created-token/"+e,{method:exports.RequestMethod.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(y+"/tokens/"+e+(r?"?"+new URLSearchParams(r).toString():""),{method:exports.RequestMethod.get})},r.validateClaimAuthAddress=function(e,t){return this.request(y+"/issued/"+e+"/"+t,{method:exports.RequestMethod.get})},r.validateClaimAuthCode=function(e,t){return this.request(y+"/issued-code/"+e+"/"+t,{method:exports.RequestMethod.get})},r.validateClaimedToken=function(e,t,r){return this.request(y+"/claimed/"+e+"/"+t+(r?"?bound="+r:""),{method:exports.RequestMethod.get})},r.addToIssued=function(e,t,r){try{return Promise.resolve(this.request(y+"/add-issued-to",{method:exports.RequestMethod.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,s){try{return Promise.resolve(this.request(y+"/bind",{method:exports.RequestMethod.patch,body:JSON.stringify({address:r,eventId:e,tokenId:t,signature:n,message:s})}))}catch(e){return Promise.reject(e)}},r.burn=function(e,t,r,n,s){try{return Promise.resolve(this.request(y+"/burn",{method:exports.RequestMethod.patch,body:JSON.stringify({address:r,eventId:e,tokenId:t,signature:n,message:s})}))}catch(e){return Promise.reject(e)}},r.claim=function(e,t,r,n,s){try{var o={signature:r,id:e,address:t,message:n};return s&&(o.uniqueCode=s),Promise.resolve(this.request(y+"/claim",{method:exports.RequestMethod.patch,body:JSON.stringify(o)}))}catch(e){return Promise.reject(e)}},r.drop=function(e,t,r){try{return Promise.resolve(this.request(y+"/drop",{method:exports.RequestMethod.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(y+"/increase-token-limit",{method:exports.RequestMethod.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(y+"/update",{method:exports.RequestMethod.patch,body:JSON.stringify(e)}))}catch(e){return Promise.reject(e)}},r.getSignatureMessage=function(e){var t=h.default.SHA256(h.default.lib.WordArray.random(16)).toString(h.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))},t}(g),P=/*#__PURE__*/function(e){function t(){for(var t,r=arguments.length,n=new Array(r),s=0;s<r;s++)n[s]=arguments[s];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}m(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}(v),q=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return m(t,e),t}(g);f=q,[v,P].forEach(function(e){Object.getOwnPropertyNames(e.prototype).forEach(function(t){Object.defineProperty(f.prototype,t,Object.getOwnPropertyDescriptor(e.prototype,t))})}),exports.default=q;