@dfinity/utils 1.0.0 → 1.1.0

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.
package/README.md CHANGED
@@ -49,6 +49,7 @@ npm i @dfinity/agent @dfinity/candid @dfinity/principal
49
49
  - [encodeBase32](#gear-encodebase32)
50
50
  - [decodeBase32](#gear-decodebase32)
51
51
  - [bigEndianCrc32](#gear-bigendiancrc32)
52
+ - [secondsToDuration](#gear-secondstoduration)
52
53
  - [debounce](#gear-debounce)
53
54
  - [isNullish](#gear-isnullish)
54
55
  - [nonNullish](#gear-nonnullish)
@@ -234,6 +235,20 @@ Parameters:
234
235
 
235
236
  [:link: Source](https://github.com/dfinity/ic-js/tree/main/packages/utils/src/utils/crc.utils.ts#L61)
236
237
 
238
+ #### :gear: secondsToDuration
239
+
240
+ Convert seconds to a human-readable duration, such as "6 days, 10 hours."
241
+
242
+ | Function | Type |
243
+ | ------------------- | ------------------------------------------------------------------------------------ |
244
+ | `secondsToDuration` | `({ seconds, i18n, }: { seconds: bigint; i18n?: I18nSecondsToDuration; }) => string` |
245
+
246
+ Parameters:
247
+
248
+ - `options`: - The options object.
249
+
250
+ [:link: Source](https://github.com/dfinity/ic-js/tree/main/packages/utils/src/utils/date.utils.ts#L43)
251
+
237
252
  #### :gear: debounce
238
253
 
239
254
  | Function | Type |
@@ -1,2 +1,2 @@
1
- "use strict";var l=Object.defineProperty;var C=Object.getOwnPropertyDescriptor;var V=Object.getOwnPropertyNames;var D=Object.prototype.hasOwnProperty;var F=(t,e)=>{for(var r in e)l(t,r,{get:e[r],enumerable:!0})},L=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of V(e))!D.call(t,o)&&o!==r&&l(t,o,{get:()=>e[o],enumerable:!(n=C(e,o))||n.enumerable});return t};var j=t=>L(l({},"__esModule",{value:!0}),t);var se={};F(se,{Canister:()=>A,FromStringToTokenError:()=>y,ICPToken:()=>K,InvalidPercentageError:()=>s,NullishError:()=>p,TokenAmount:()=>g,arrayBufferToUint8Array:()=>Y,arrayOfNumberToUint8Array:()=>G,asciiStringToByteArray:()=>v,assertNonNullish:()=>x,assertPercentageNumber:()=>H,bigEndianCrc32:()=>ne,bigIntToUint8Array:()=>$,convertStringToE8s:()=>k,createAgent:()=>M,createServices:()=>q,debounce:()=>oe,decodeBase32:()=>ee,defaultAgent:()=>T,encodeBase32:()=>Z,fromDefinedNullable:()=>xe,fromNullable:()=>_,hexStringToUint8Array:()=>W,isNullish:()=>B,jsonReplacer:()=>ae,jsonReviver:()=>de,nonNullish:()=>c,notEmptyString:()=>ie,numberToUint8Array:()=>z,principalToSubAccount:()=>fe,smallerVersion:()=>be,toNullable:()=>ce,uint8ArrayToArrayOfNumber:()=>Q,uint8ArrayToBigInt:()=>J,uint8ArrayToHexString:()=>X});module.exports=j(se);var y=(r=>(r[r.FractionalMoreThan8Decimals=0]="FractionalMoreThan8Decimals",r[r.InvalidFormat=1]="InvalidFormat",r))(y||{});var S=BigInt(1e8);var k=t=>{let e=t.includes("e")?Number(t).toLocaleString("en",{useGrouping:!1,maximumFractionDigits:20}):t;e=e.trim().replace(/[,']/g,"");let r=e.match(/\d*(\.\d*)?/);if(!r||r[0]!==e)return 1;let[n,o]=e.split("."),i=BigInt(0);if(n)try{i+=BigInt(n)*S}catch{return 1}if(o){if(o.length>8)return 0;try{i+=BigInt(o.padEnd(8,"0"))}catch{return 1}}return i},K={symbol:"ICP",name:"Internet Computer"},g=class t{constructor(e,r){this.e8s=e;this.token=r}static fromE8s({amount:e,token:r}){return new t(e,r)}static fromString({amount:e,token:r}){let n=k(e);return typeof n=="bigint"?new t(n,r):n}static fromNumber({amount:e,token:r}){let n=t.fromString({amount:e.toString(),token:r});if(n instanceof t)return n;throw n===0?new Error(`Number ${e} has more than 8 decimals`):new Error(`Invalid number ${e}`)}toE8s(){return this.e8s}};var A=class{constructor(e,r,n){this.id=e;this.service=r;this.certifiedService=n;this.caller=({certified:e=!0})=>e?this.certifiedService:this.service}get canisterId(){return this.id}};var N=require("@dfinity/agent");var b=require("@dfinity/agent"),T=()=>new b.HttpAgent({host:"https://ic0.app",identity:new b.AnonymousIdentity}),M=async({identity:t,host:e,fetchRootKey:r=!1})=>{let n=new b.HttpAgent({identity:t,...e!==void 0&&{host:e}});return r&&await n.fetchRootKey(),n};var q=({options:{canisterId:t,serviceOverride:e,certifiedServiceOverride:r,agent:n,callTransform:o,queryTransform:i},idlFactory:a,certifiedIdlFactory:d})=>{let m=n??T(),E=e??N.Actor.createActor(a,{agent:m,canisterId:t,callTransform:o,queryTransform:i}),R=r??N.Actor.createActor(d,{agent:m,canisterId:t,callTransform:o,queryTransform:i});return{service:E,certifiedService:R,agent:m,canisterId:t}};var s=class extends Error{},p=class extends Error{},x=(t,e)=>{if(t==null)throw new p(e)},H=t=>{if(t<0||t>100)throw new s(`${t} is not a valid percentage number.`)};var J=t=>{let e=new DataView(t.buffer,t.byteOffset,t.byteLength);if(typeof e.getBigUint64=="function")return e.getBigUint64(0);{let r=BigInt(e.getUint32(0)),n=BigInt(e.getUint32(4));return(r<<BigInt(32))+n}},$=t=>{let e=new ArrayBuffer(8),r=new DataView(e);if(typeof r.setBigUint64=="function")r.setBigUint64(0,t);else{let n=Number(t>>BigInt(32)),o=Number(t&BigInt(4294967295));r.setUint32(0,n),r.setUint32(4,o)}return new Uint8Array(e)},z=t=>{let e=new DataView(new ArrayBuffer(8));for(let r=7;r>=0;--r)e.setUint8(r,t%256),t=t>>8;return new Uint8Array(e.buffer)},Y=t=>new Uint8Array(t),Q=t=>Array.from(t),G=t=>new Uint8Array(t),v=t=>Array.from(t).map(e=>e.charCodeAt(0)),W=t=>{let e=t.match(/.{1,2}/g);return x(e,"Invalid hex string."),Uint8Array.from(e.map(r=>parseInt(r,16)))},X=t=>t.reduce((e,r)=>e+r.toString(16).padStart(2,"0"),"");var u="abcdefghijklmnopqrstuvwxyz234567",f=Object.create(null);for(let t=0;t<u.length;t++)f[u[t]]=t;f[0]=f.o;f[1]=f.i;var Z=t=>{let e=0,r=0,n="";function o(i){return e<0?r|=i>>-e:r=i<<e&248,e>3?(e-=8,1):(e<4&&(n+=u[r>>3],e+=5),0)}for(let i=0;i<t.length;)i+=o(t[i]);return n+(e<0?u[r>>3]:"")};function ee(t){let e=0,r=0,n=new Uint8Array(t.length*4/3|0),o=0;function i(a){let d=f[a.toLowerCase()];x(d,`Invalid character: ${JSON.stringify(a)}`),d<<=3,r|=d>>>e,e+=5,e>=8&&(n[o++]=r,e-=8,e>0?r=d<<5-e&255:r=0)}for(let a of t)i(a);return n.slice(0,o)}var te=new Uint32Array([0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117]),re=t=>{let e=-1;for(let r=0;r<t.length;r++){let o=(t[r]^e)&255;e=te[o]^e>>>8}return(e^-1)>>>0},ne=t=>{let e=new ArrayBuffer(4);return new DataView(e).setUint32(0,re(t),!1),new Uint8Array(e)};var oe=(t,e)=>{let r;return(...n)=>{let o=()=>t(...n);r&&clearTimeout(r),r=setTimeout(o,e!==void 0&&e>0?e:300)}};var B=t=>t==null,c=t=>!B(t),ie=t=>c(t)&&t!=="";var ce=t=>c(t)?[t]:[],_=t=>t==null?void 0:t[0],xe=t=>{let e=_(t);return x(e),e};var I=require("@dfinity/principal");var U="__bigint__",h="__principal__",w="__uint8array__",ae=(t,e)=>typeof e=="bigint"?{[U]:`${e}`}:c(e)&&e instanceof I.Principal?{[h]:e.toText()}:c(e)&&e instanceof Uint8Array?{[w]:Array.from(e)}:e,de=(t,e)=>{let r=n=>e[n];return c(e)&&typeof e=="object"&&U in e?BigInt(r(U)):c(e)&&typeof e=="object"&&h in e?I.Principal.fromText(r(h)):c(e)&&typeof e=="object"&&w in e?Uint8Array.from(r(w)):e};var fe=t=>{let e=t.toUint8Array(),r=new Uint8Array(32);return r[0]=e.length,r.set(e,1),r};var O=(t,e)=>e>t.length?[...t,...[...Array(e-t.length).keys()].map(()=>0)]:t,P=t=>{if(!Number.isNaN(Number(t)))return Number(t);let e=t.split("").reduce((r,n)=>Number.isNaN(Number(n))?r:r+n,"");return Number(e)},be=({minVersion:t,currentVersion:e})=>{let r=O(t.split(".").map(P),3).join(".");return O(e.split(".").map(P),3).join(".").localeCompare(r,void 0,{numeric:!0,sensitivity:"base"})<0};0&&(module.exports={Canister,FromStringToTokenError,ICPToken,InvalidPercentageError,NullishError,TokenAmount,arrayBufferToUint8Array,arrayOfNumberToUint8Array,asciiStringToByteArray,assertNonNullish,assertPercentageNumber,bigEndianCrc32,bigIntToUint8Array,convertStringToE8s,createAgent,createServices,debounce,decodeBase32,defaultAgent,encodeBase32,fromDefinedNullable,fromNullable,hexStringToUint8Array,isNullish,jsonReplacer,jsonReviver,nonNullish,notEmptyString,numberToUint8Array,principalToSubAccount,smallerVersion,toNullable,uint8ArrayToArrayOfNumber,uint8ArrayToBigInt,uint8ArrayToHexString});
1
+ "use strict";var y=Object.defineProperty;var C=Object.getOwnPropertyDescriptor;var V=Object.getOwnPropertyNames;var Y=Object.prototype.hasOwnProperty;var K=(t,e)=>{for(var r in e)y(t,r,{get:e[r],enumerable:!0})},M=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of V(e))!Y.call(t,o)&&o!==r&&y(t,o,{get:()=>e[o],enumerable:!(n=C(e,o))||n.enumerable});return t};var F=t=>M(y({},"__esModule",{value:!0}),t);var ye={};K(ye,{Canister:()=>T,FromStringToTokenError:()=>g,ICPToken:()=>H,InvalidPercentageError:()=>u,NullishError:()=>p,TokenAmount:()=>A,arrayBufferToUint8Array:()=>G,arrayOfNumberToUint8Array:()=>W,asciiStringToByteArray:()=>X,assertNonNullish:()=>s,assertPercentageNumber:()=>q,bigEndianCrc32:()=>ie,bigIntToUint8Array:()=>z,convertStringToE8s:()=>B,createAgent:()=>j,createServices:()=>$,debounce:()=>se,decodeBase32:()=>re,defaultAgent:()=>N,encodeBase32:()=>te,fromDefinedNullable:()=>be,fromNullable:()=>R,hexStringToUint8Array:()=>Z,isNullish:()=>O,jsonReplacer:()=>ue,jsonReviver:()=>pe,nonNullish:()=>c,notEmptyString:()=>de,numberToUint8Array:()=>Q,principalToSubAccount:()=>me,secondsToDuration:()=>ce,smallerVersion:()=>le,toNullable:()=>fe,uint8ArrayToArrayOfNumber:()=>v,uint8ArrayToBigInt:()=>J,uint8ArrayToHexString:()=>ee});module.exports=F(ye);var g=(r=>(r[r.FractionalMoreThan8Decimals=0]="FractionalMoreThan8Decimals",r[r.InvalidFormat=1]="InvalidFormat",r))(g||{});var w=BigInt(1e8);var B=t=>{let e=t.includes("e")?Number(t).toLocaleString("en",{useGrouping:!1,maximumFractionDigits:20}):t;e=e.trim().replace(/[,']/g,"");let r=e.match(/\d*(\.\d*)?/);if(!r||r[0]!==e)return 1;let[n,o]=e.split("."),i=BigInt(0);if(n)try{i+=BigInt(n)*w}catch{return 1}if(o){if(o.length>8)return 0;try{i+=BigInt(o.padEnd(8,"0"))}catch{return 1}}return i},H={symbol:"ICP",name:"Internet Computer"},A=class t{constructor(e,r){this.e8s=e;this.token=r}static fromE8s({amount:e,token:r}){return new t(e,r)}static fromString({amount:e,token:r}){let n=B(e);return typeof n=="bigint"?new t(n,r):n}static fromNumber({amount:e,token:r}){let n=t.fromString({amount:e.toString(),token:r});if(n instanceof t)return n;throw n===0?new Error(`Number ${e} has more than 8 decimals`):new Error(`Invalid number ${e}`)}toE8s(){return this.e8s}};var T=class{constructor(e,r,n){this.id=e;this.service=r;this.certifiedService=n;this.caller=({certified:e=!0})=>e?this.certifiedService:this.service}get canisterId(){return this.id}};var I=require("@dfinity/agent");var f=require("@dfinity/agent"),N=()=>new f.HttpAgent({host:"https://ic0.app",identity:new f.AnonymousIdentity}),j=async({identity:t,host:e,fetchRootKey:r=!1})=>{let n=new f.HttpAgent({identity:t,...e!==void 0&&{host:e}});return r&&await n.fetchRootKey(),n};var $=({options:{canisterId:t,serviceOverride:e,certifiedServiceOverride:r,agent:n,callTransform:o,queryTransform:i},idlFactory:x,certifiedIdlFactory:a})=>{let l=n??N(),P=e??I.Actor.createActor(x,{agent:l,canisterId:t,callTransform:o,queryTransform:i}),L=r??I.Actor.createActor(a,{agent:l,canisterId:t,callTransform:o,queryTransform:i});return{service:P,certifiedService:L,agent:l,canisterId:t}};var u=class extends Error{},p=class extends Error{},s=(t,e)=>{if(t==null)throw new p(e)},q=t=>{if(t<0||t>100)throw new u(`${t} is not a valid percentage number.`)};var J=t=>{let e=new DataView(t.buffer,t.byteOffset,t.byteLength);if(typeof e.getBigUint64=="function")return e.getBigUint64(0);{let r=BigInt(e.getUint32(0)),n=BigInt(e.getUint32(4));return(r<<BigInt(32))+n}},z=t=>{let e=new ArrayBuffer(8),r=new DataView(e);if(typeof r.setBigUint64=="function")r.setBigUint64(0,t);else{let n=Number(t>>BigInt(32)),o=Number(t&BigInt(4294967295));r.setUint32(0,n),r.setUint32(4,o)}return new Uint8Array(e)},Q=t=>{let e=new DataView(new ArrayBuffer(8));for(let r=7;r>=0;--r)e.setUint8(r,t%256),t=t>>8;return new Uint8Array(e.buffer)},G=t=>new Uint8Array(t),v=t=>Array.from(t),W=t=>new Uint8Array(t),X=t=>Array.from(t).map(e=>e.charCodeAt(0)),Z=t=>{let e=t.match(/.{1,2}/g);return s(e,"Invalid hex string."),Uint8Array.from(e.map(r=>parseInt(r,16)))},ee=t=>t.reduce((e,r)=>e+r.toString(16).padStart(2,"0"),"");var m="abcdefghijklmnopqrstuvwxyz234567",d=Object.create(null);for(let t=0;t<m.length;t++)d[m[t]]=t;d[0]=d.o;d[1]=d.i;var te=t=>{let e=0,r=0,n="";function o(i){return e<0?r|=i>>-e:r=i<<e&248,e>3?(e-=8,1):(e<4&&(n+=m[r>>3],e+=5),0)}for(let i=0;i<t.length;)i+=o(t[i]);return n+(e<0?m[r>>3]:"")};function re(t){let e=0,r=0,n=new Uint8Array(t.length*4/3|0),o=0;function i(x){let a=d[x.toLowerCase()];s(a,`Invalid character: ${JSON.stringify(x)}`),a<<=3,r|=a>>>e,e+=5,e>=8&&(n[o++]=r,e-=8,e>0?r=a<<5-e&255:r=0)}for(let x of t)i(x);return n.slice(0,o)}var ne=new Uint32Array([0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117]),oe=t=>{let e=-1;for(let r=0;r<t.length;r++){let o=(t[r]^e)&255;e=ne[o]^e>>>8}return(e^-1)>>>0},ie=t=>{let e=new ArrayBuffer(4);return new DataView(e).setUint32(0,oe(t),!1),new Uint8Array(e)};var ae={year:"year",year_plural:"years",month:"month",month_plural:"months",day:"day",day_plural:"days",hour:"hour",hour_plural:"hours",minute:"minute",minute_plural:"minutes",second:"second",second_plural:"seconds"},ce=({seconds:t,i18n:e=ae})=>{let r=t/BigInt(60),n=r/BigInt(60);r-=n*BigInt(60);let o=n/BigInt(24);n-=o*BigInt(24);let i=xe(o);return o-=E(i),[b("year",i),b("day",o),b("hour",n),b("minute",r),...t>BigInt(0)&&t<BigInt(60)?[b("second",t)]:[]].filter(({amount:a})=>a>0).slice(0,2).map(a=>`${a.amount} ${a.amount===1?e[a.labelKey]:e[`${a.labelKey}_plural`]}`).join(", ")},xe=t=>{let e=t/BigInt(365);for(;E(e)>t;)e--;return e},E=t=>{let e=t/BigInt(4);return t*BigInt(365)+e},b=(t,e)=>({labelKey:t,amount:Number(e)});var se=(t,e)=>{let r;return(...n)=>{let o=()=>t(...n);r&&clearTimeout(r),r=setTimeout(o,e!==void 0&&e>0?e:300)}};var O=t=>t==null,c=t=>!O(t),de=t=>c(t)&&t!=="";var fe=t=>c(t)?[t]:[],R=t=>t==null?void 0:t[0],be=t=>{let e=R(t);return s(e),e};var S=require("@dfinity/principal");var _="__bigint__",h="__principal__",U="__uint8array__",ue=(t,e)=>typeof e=="bigint"?{[_]:`${e}`}:c(e)&&e instanceof S.Principal?{[h]:e.toText()}:c(e)&&e instanceof Uint8Array?{[U]:Array.from(e)}:e,pe=(t,e)=>{let r=n=>e[n];return c(e)&&typeof e=="object"&&_ in e?BigInt(r(_)):c(e)&&typeof e=="object"&&h in e?S.Principal.fromText(r(h)):c(e)&&typeof e=="object"&&U in e?Uint8Array.from(r(U)):e};var me=t=>{let e=t.toUint8Array(),r=new Uint8Array(32);return r[0]=e.length,r.set(e,1),r};var k=(t,e)=>e>t.length?[...t,...[...Array(e-t.length).keys()].map(()=>0)]:t,D=t=>{if(!Number.isNaN(Number(t)))return Number(t);let e=t.split("").reduce((r,n)=>Number.isNaN(Number(n))?r:r+n,"");return Number(e)},le=({minVersion:t,currentVersion:e})=>{let r=k(t.split(".").map(D),3).join(".");return k(e.split(".").map(D),3).join(".").localeCompare(r,void 0,{numeric:!0,sensitivity:"base"})<0};0&&(module.exports={Canister,FromStringToTokenError,ICPToken,InvalidPercentageError,NullishError,TokenAmount,arrayBufferToUint8Array,arrayOfNumberToUint8Array,asciiStringToByteArray,assertNonNullish,assertPercentageNumber,bigEndianCrc32,bigIntToUint8Array,convertStringToE8s,createAgent,createServices,debounce,decodeBase32,defaultAgent,encodeBase32,fromDefinedNullable,fromNullable,hexStringToUint8Array,isNullish,jsonReplacer,jsonReviver,nonNullish,notEmptyString,numberToUint8Array,principalToSubAccount,secondsToDuration,smallerVersion,toNullable,uint8ArrayToArrayOfNumber,uint8ArrayToBigInt,uint8ArrayToHexString});
2
2
  //# sourceMappingURL=index.cjs.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/index.ts", "../../src/enums/token.enums.ts", "../../src/constants/constants.ts", "../../src/parser/token.ts", "../../src/services/canister.ts", "../../src/utils/actor.utils.ts", "../../src/utils/agent.utils.ts", "../../src/utils/asserts.utils.ts", "../../src/utils/arrays.utils.ts", "../../src/utils/base32.utils.ts", "../../src/utils/crc.utils.ts", "../../src/utils/debounce.utils.ts", "../../src/utils/nullish.utils.ts", "../../src/utils/did.utils.ts", "../../src/utils/json.utils.ts", "../../src/utils/principal.utils.ts", "../../src/utils/version.utils.ts"],
4
- "sourcesContent": ["export * from \"./enums/token.enums\";\nexport * from \"./parser/token\";\nexport * from \"./services/canister\";\nexport * from \"./types/actor-type.utils\";\nexport type { CanisterOptions } from \"./types/canister.options\";\nexport type { QueryParams } from \"./types/query.params\";\nexport * from \"./utils/actor.utils\";\nexport * from \"./utils/agent.utils\";\nexport * from \"./utils/arrays.utils\";\nexport * from \"./utils/asserts.utils\";\nexport * from \"./utils/base32.utils\";\nexport * from \"./utils/crc.utils\";\nexport * from \"./utils/debounce.utils\";\nexport * from \"./utils/did.utils\";\nexport * from \"./utils/json.utils\";\nexport * from \"./utils/nullish.utils\";\nexport * from \"./utils/principal.utils\";\nexport * from \"./utils/version.utils\";\n", "export enum FromStringToTokenError {\n FractionalMoreThan8Decimals,\n InvalidFormat,\n}\n", "export const E8S_PER_TOKEN = BigInt(100000000);\n", "import { E8S_PER_TOKEN } from \"../constants/constants\";\nimport { FromStringToTokenError } from \"../enums/token.enums\";\n\n/**\n * Receives a string representing a number and returns the big int or error.\n *\n * @param amount - in string format\n * @returns bigint | FromStringToTokenError\n */\nexport const convertStringToE8s = (\n value: string,\n): bigint | FromStringToTokenError => {\n // replace exponential format (1e-4) with plain (0.0001)\n // doesn't support decimals for values >= ~1e16\n let amount = value.includes(\"e\")\n ? Number(value).toLocaleString(\"en\", {\n useGrouping: false,\n maximumFractionDigits: 20,\n })\n : value;\n\n // Remove all instances of \",\" and \"'\".\n amount = amount.trim().replace(/[,']/g, \"\");\n\n // Verify that the string is of the format 1234.5678\n const regexMatch = amount.match(/\\d*(\\.\\d*)?/);\n if (!regexMatch || regexMatch[0] !== amount) {\n return FromStringToTokenError.InvalidFormat;\n }\n\n const [integral, fractional] = amount.split(\".\");\n\n let e8s = BigInt(0);\n\n if (integral) {\n try {\n e8s += BigInt(integral) * E8S_PER_TOKEN;\n } catch {\n return FromStringToTokenError.InvalidFormat;\n }\n }\n\n if (fractional) {\n if (fractional.length > 8) {\n return FromStringToTokenError.FractionalMoreThan8Decimals;\n }\n try {\n e8s += BigInt(fractional.padEnd(8, \"0\"));\n } catch {\n return FromStringToTokenError.InvalidFormat;\n }\n }\n\n return e8s;\n};\n\nexport interface Token {\n symbol: string;\n name: string;\n}\n\nexport const ICPToken: Token = {\n symbol: \"ICP\",\n name: \"Internet Computer\",\n};\n\n/**\n * Represents an amount of tokens.\n *\n * @param e8s - The amount of tokens in bigint.\n * @param token - The token type.\n */\nexport class TokenAmount {\n private constructor(\n protected e8s: bigint,\n public token: Token,\n ) {}\n\n /**\n * Initialize from a bigint. Bigint are considered e8s.\n *\n * @param {amount: bigint; token?: Token;} params\n * @param {bigint} params.amount The amount in bigint format.\n * @param {Token} params.token The token type.\n */\n public static fromE8s({\n amount,\n token,\n }: {\n amount: bigint;\n token: Token;\n }): TokenAmount {\n return new TokenAmount(amount, token);\n }\n\n /**\n * Initialize from a string. Accepted formats:\n *\n * 1234567.8901\n * 1'234'567.8901\n * 1,234,567.8901\n *\n * @param {amount: string; token?: Token;} params\n * @param {string} params.amount The amount in string format.\n * @param {Token} params.token The token type.\n */\n public static fromString({\n amount,\n token,\n }: {\n amount: string;\n token: Token;\n }): TokenAmount | FromStringToTokenError {\n const e8s = convertStringToE8s(amount);\n\n if (typeof e8s === \"bigint\") {\n return new TokenAmount(e8s, token);\n }\n return e8s;\n }\n\n /**\n * Initialize from a number.\n *\n * 1 integer is considered E8S_PER_TOKEN\n *\n * @param {amount: number; token?: Token;} params\n * @param {string} params.amount The amount in number format.\n * @param {Token} params.token The token type.\n */\n public static fromNumber({\n amount,\n token,\n }: {\n amount: number;\n token: Token;\n }): TokenAmount {\n const tokenAmount = TokenAmount.fromString({\n amount: amount.toString(),\n token,\n });\n if (tokenAmount instanceof TokenAmount) {\n return tokenAmount;\n }\n if (tokenAmount === FromStringToTokenError.FractionalMoreThan8Decimals) {\n throw new Error(`Number ${amount} has more than 8 decimals`);\n }\n\n // This should never happen\n throw new Error(`Invalid number ${amount}`);\n }\n\n /**\n *\n * @returns The amount of e8s.\n */\n public toE8s(): bigint {\n return this.e8s;\n }\n}\n", "import type { Principal } from \"@dfinity/principal\";\nimport type { QueryParams } from \"../types/query.params\";\n\nexport abstract class Canister<T> {\n protected constructor(\n private readonly id: Principal,\n protected readonly service: T,\n protected readonly certifiedService: T,\n ) {}\n\n get canisterId(): Principal {\n return this.id;\n }\n\n protected caller = ({ certified = true }: QueryParams): T =>\n certified ? this.certifiedService : this.service;\n}\n", "import type { ActorConfig, ActorSubclass, Agent } from \"@dfinity/agent\";\nimport { Actor } from \"@dfinity/agent\";\nimport type { IDL } from \"@dfinity/candid\";\nimport type { Principal } from \"@dfinity/principal\";\nimport type { CanisterOptions } from \"../types/canister.options\";\nimport { defaultAgent } from \"./agent.utils\";\n\ntype RequiredCanisterOptions<T> = Required<\n Pick<CanisterOptions<T>, \"canisterId\">\n> &\n Omit<CanisterOptions<T>, \"canisterId\">;\n\nexport const createServices = <T>({\n options: {\n canisterId,\n serviceOverride,\n certifiedServiceOverride,\n agent: agentOption,\n callTransform,\n queryTransform,\n },\n idlFactory,\n certifiedIdlFactory,\n}: {\n options: RequiredCanisterOptions<T> &\n Pick<ActorConfig, \"queryTransform\" | \"callTransform\">;\n idlFactory: IDL.InterfaceFactory;\n certifiedIdlFactory: IDL.InterfaceFactory;\n}): {\n service: ActorSubclass<T>;\n certifiedService: ActorSubclass<T>;\n agent: Agent;\n canisterId: Principal;\n} => {\n const agent: Agent = agentOption ?? defaultAgent();\n\n const service: ActorSubclass<T> =\n serviceOverride ??\n Actor.createActor<T>(idlFactory, {\n agent,\n canisterId,\n callTransform,\n queryTransform,\n });\n\n const certifiedService: ActorSubclass<T> =\n certifiedServiceOverride ??\n Actor.createActor<T>(certifiedIdlFactory, {\n agent,\n canisterId,\n callTransform,\n queryTransform,\n });\n\n return { service, certifiedService, agent, canisterId };\n};\n", "import type { Agent, Identity } from \"@dfinity/agent\";\nimport { AnonymousIdentity, HttpAgent } from \"@dfinity/agent\";\n\n/**\n * Get a default agent that connects to mainnet with the anonymous identity.\n * @returns The default agent to use\n */\nexport const defaultAgent = (): Agent =>\n new HttpAgent({\n host: \"https://ic0.app\",\n identity: new AnonymousIdentity(),\n });\n\n/**\n * Create an agent for a given identity\n * @param identity A mandatory identity to use for the agent\n * @param host An optional host to connect to\n * @param fetchRootKey Fetch root key for certificate validation during local development or on testnet\n */\nexport const createAgent = async ({\n identity,\n host,\n fetchRootKey = false,\n}: {\n identity: Identity;\n host?: string;\n fetchRootKey?: boolean;\n}): Promise<HttpAgent> => {\n const agent: HttpAgent = new HttpAgent({\n identity,\n ...(host !== undefined && { host }),\n });\n\n if (fetchRootKey) {\n await agent.fetchRootKey();\n }\n\n return agent;\n};\n", "export class InvalidPercentageError extends Error {}\nexport class NullishError extends Error {}\n\nexport const assertNonNullish: <T>(\n value: T,\n message?: string,\n) => asserts value is NonNullable<T> = <T>(\n value: T,\n message?: string,\n): void => {\n if (value === null || value === undefined) {\n throw new NullishError(message);\n }\n};\nexport const assertPercentageNumber = (percentage: number) => {\n if (percentage < 0 || percentage > 100) {\n throw new InvalidPercentageError(\n `${percentage} is not a valid percentage number.`,\n );\n }\n};\n", "import { assertNonNullish } from \"./asserts.utils\";\n\nexport const uint8ArrayToBigInt = (array: Uint8Array): bigint => {\n const view = new DataView(array.buffer, array.byteOffset, array.byteLength);\n if (typeof view.getBigUint64 === \"function\") {\n return view.getBigUint64(0);\n } else {\n const high = BigInt(view.getUint32(0));\n const low = BigInt(view.getUint32(4));\n\n return (high << BigInt(32)) + low;\n }\n};\n\nexport const bigIntToUint8Array = (value: bigint): Uint8Array => {\n const buffer = new ArrayBuffer(8);\n const view = new DataView(buffer);\n if (typeof view.setBigUint64 === \"function\") {\n view.setBigUint64(0, value);\n } else {\n const high = Number(value >> BigInt(32));\n const low = Number(value & BigInt(0xffffffff));\n\n view.setUint32(0, high);\n view.setUint32(4, low);\n }\n\n return new Uint8Array(buffer);\n};\n\nexport const numberToUint8Array = (value: number): Uint8Array => {\n const view = new DataView(new ArrayBuffer(8));\n for (let index = 7; index >= 0; --index) {\n view.setUint8(index, value % 256);\n value = value >> 8;\n }\n return new Uint8Array(view.buffer);\n};\n\nexport const arrayBufferToUint8Array = (buffer: ArrayBuffer): Uint8Array =>\n new Uint8Array(buffer);\n\nexport const uint8ArrayToArrayOfNumber = (array: Uint8Array): Array<number> =>\n Array.from(array);\n\nexport const arrayOfNumberToUint8Array = (numbers: Array<number>): Uint8Array =>\n new Uint8Array(numbers);\n\nexport const asciiStringToByteArray = (text: string): Array<number> =>\n Array.from(text).map((c) => c.charCodeAt(0));\n\nexport const hexStringToUint8Array = (hexString: string): Uint8Array => {\n const matches = hexString.match(/.{1,2}/g);\n\n assertNonNullish(matches, \"Invalid hex string.\");\n\n return Uint8Array.from(matches.map((byte) => parseInt(byte, 16)));\n};\n\nexport const uint8ArrayToHexString = (bytes: Uint8Array) =>\n bytes.reduce((str, byte) => str + byte.toString(16).padStart(2, \"0\"), \"\");\n", "import { assertNonNullish } from \"./asserts.utils\";\n\nconst ALPHABET = \"abcdefghijklmnopqrstuvwxyz234567\";\n\n// Build a lookup table for decoding.\nconst LOOKUP_TABLE: Record<string, number> = Object.create(null);\nfor (let i = 0; i < ALPHABET.length; i++) {\n LOOKUP_TABLE[ALPHABET[i]] = i;\n}\n\n// Add aliases for rfc4648.\nLOOKUP_TABLE[\"0\"] = LOOKUP_TABLE.o;\nLOOKUP_TABLE[\"1\"] = LOOKUP_TABLE.i;\n\n/**\n * Encode an Uint8Array to a base32 string.\n *\n * @param input The input array to encode.\n * @returns A Base32 string encoding the input.\n */\nexport const encodeBase32 = (input: Uint8Array): string => {\n // How many bits will we skip from the first byte.\n let skip = 0;\n // 5 high bits, carry from one byte to the next.\n let bits = 0;\n\n // The output string in base32.\n let output = \"\";\n\n function encodeByte(byte: number): number {\n if (skip < 0) {\n // we have a carry from the previous byte\n bits |= byte >> -skip;\n } else {\n // no carry\n bits = (byte << skip) & 248;\n }\n\n if (skip > 3) {\n // Not enough data to produce a character, get us another one\n skip -= 8;\n return 1;\n }\n\n if (skip < 4) {\n // produce a character\n output += ALPHABET[bits >> 3];\n skip += 5;\n }\n\n return 0;\n }\n\n for (let i = 0; i < input.length; ) {\n i += encodeByte(input[i]);\n }\n\n return output + (skip < 0 ? ALPHABET[bits >> 3] : \"\");\n};\n\n/**\n * Decode a base32 string to Uint8Array.\n *\n * @param input The input string to decode.\n * @param input The base32 encoded string to decode.\n */\nexport function decodeBase32(input: string): Uint8Array {\n // how many bits we have from the previous character.\n let skip = 0;\n // current byte we're producing.\n let byte = 0;\n\n const output = new Uint8Array(((input.length * 4) / 3) | 0);\n let o = 0;\n\n function decodeChar(char: string) {\n // Consume a character from the stream, store\n // the output in this.output. As before, better\n // to use update().\n let val = LOOKUP_TABLE[char.toLowerCase()];\n assertNonNullish(val, `Invalid character: ${JSON.stringify(char)}`);\n\n // move to the high bits\n val <<= 3;\n byte |= val >>> skip;\n skip += 5;\n\n if (skip >= 8) {\n // We have enough bytes to produce an output\n output[o++] = byte;\n skip -= 8;\n\n if (skip > 0) {\n byte = (val << (5 - skip)) & 255;\n } else {\n byte = 0;\n }\n }\n }\n\n for (const c of input) {\n decodeChar(c);\n }\n\n return output.slice(0, o);\n}\n", "// This file is translated to JavaScript from\n// https://lxp32.github.io/docs/a-simple-example-crc32-calculation/\nconst lookUpTable: Uint32Array = new Uint32Array([\n 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f,\n 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988,\n 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, 0x1db71064, 0x6ab020f2,\n 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,\n 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9,\n 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172,\n 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 0x35b5a8fa, 0x42b2986c,\n 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,\n 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423,\n 0xcfba9599, 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924,\n 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, 0x01db7106,\n 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,\n 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d,\n 0x91646c97, 0xe6635c01, 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e,\n 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950,\n 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,\n 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7,\n 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0,\n 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa,\n 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,\n 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81,\n 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a,\n 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 0xe3630b12, 0x94643b84,\n 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,\n 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb,\n 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc,\n 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 0xd6d6a3e8, 0xa1d1937e,\n 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,\n 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55,\n 0x316e8eef, 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236,\n 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, 0xb2bd0b28,\n 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,\n 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f,\n 0x72076785, 0x05005713, 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38,\n 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242,\n 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,\n 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69,\n 0x616bffd3, 0x166ccf45, 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2,\n 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc,\n 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,\n 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693,\n 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94,\n 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d,\n]);\n\nconst crc32 = (bytes: Uint8Array): number => {\n let crc = -1;\n\n for (let i = 0; i < bytes.length; i++) {\n const byte = bytes[i];\n const t = (byte ^ crc) & 0xff;\n crc = lookUpTable[t] ^ (crc >>> 8);\n }\n\n return (crc ^ -1) >>> 0;\n};\n\nexport const bigEndianCrc32 = (bytes: Uint8Array): Uint8Array => {\n const checksumArrayBuf = new ArrayBuffer(4);\n const view = new DataView(checksumArrayBuf);\n view.setUint32(0, crc32(bytes), false);\n return new Uint8Array(checksumArrayBuf);\n};\n", "/* eslint-disable-next-line @typescript-eslint/ban-types */\nexport const debounce = (func: Function, timeout?: number) => {\n let timer: NodeJS.Timer | undefined;\n\n return (...args: unknown[]) => {\n const next = () => func(...args);\n\n if (timer) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore TypeScript global and window confusion even if we are using @types/node\n clearTimeout(timer);\n }\n\n timer = setTimeout(\n next,\n timeout !== undefined && timeout > 0 ? timeout : 300,\n );\n };\n};\n", "/** Is null or undefined */\nexport const isNullish = <T>(\n argument: T | undefined | null,\n): argument is undefined | null => argument === null || argument === undefined;\n\n/** Not null and not undefined */\nexport const nonNullish = <T>(\n argument: T | undefined | null,\n): argument is NonNullable<T> => !isNullish(argument);\n\n/** Not null and not undefined and not empty */\nexport const notEmptyString = (value: string | undefined | null): boolean =>\n nonNullish(value) && value !== \"\";\n", "import { assertNonNullish } from \"./asserts.utils\";\nimport { nonNullish } from \"./nullish.utils\";\n\nexport const toNullable = <T>(value?: T | null): [] | [T] => {\n return nonNullish(value) ? [value] : [];\n};\n\nexport const fromNullable = <T>(value: [] | [T]): T | undefined => {\n return value?.[0];\n};\n\nexport const fromDefinedNullable = <T>(value: [] | [T]): T => {\n const result = fromNullable(value);\n\n assertNonNullish(result);\n\n return result;\n};\n", "import { Principal } from \"@dfinity/principal\";\nimport { nonNullish } from \"./nullish.utils\";\n\nconst JSON_KEY_BIGINT = \"__bigint__\";\nconst JSON_KEY_PRINCIPAL = \"__principal__\";\nconst JSON_KEY_UINT8ARRAY = \"__uint8array__\";\n\n/**\n * A parser that interprets revived BigInt, Principal, and Uint8Array when constructing JavaScript values or objects.\n */\nexport const jsonReplacer = (_key: string, value: unknown): unknown => {\n if (typeof value === \"bigint\") {\n return { [JSON_KEY_BIGINT]: `${value}` };\n }\n\n if (nonNullish(value) && value instanceof Principal) {\n return { [JSON_KEY_PRINCIPAL]: value.toText() };\n }\n\n if (nonNullish(value) && value instanceof Uint8Array) {\n return { [JSON_KEY_UINT8ARRAY]: Array.from(value) };\n }\n\n return value;\n};\n\n/**\n * A function that alters the behavior of the stringification process for BigInt, Principal and Uint8Array.\n */\nexport const jsonReviver = (_key: string, value: unknown): unknown => {\n const mapValue = <T>(key: string): T => (value as Record<string, T>)[key];\n\n if (\n nonNullish(value) &&\n typeof value === \"object\" &&\n JSON_KEY_BIGINT in value\n ) {\n return BigInt(mapValue(JSON_KEY_BIGINT));\n }\n\n if (\n nonNullish(value) &&\n typeof value === \"object\" &&\n JSON_KEY_PRINCIPAL in value\n ) {\n return Principal.fromText(mapValue(JSON_KEY_PRINCIPAL));\n }\n\n if (\n nonNullish(value) &&\n typeof value === \"object\" &&\n JSON_KEY_UINT8ARRAY in value\n ) {\n return Uint8Array.from(mapValue(JSON_KEY_UINT8ARRAY));\n }\n\n return value;\n};\n", "import type { Principal } from \"@dfinity/principal\";\n\n/**\n * Convert a principal to a Uint8Array 32 length.\n * e.g. Useful to convert a canister ID when topping up cycles with the Cmc canister\n * @param principal The principal that needs to be converted to Subaccount\n */\nexport const principalToSubAccount = (principal: Principal): Uint8Array => {\n const bytes: Uint8Array = principal.toUint8Array();\n const subAccount: Uint8Array = new Uint8Array(32);\n subAccount[0] = bytes.length;\n subAccount.set(bytes, 1);\n return subAccount;\n};\n", "const AMOUNT_VERSION_PARTS = 3;\nconst addZeros = (nums: number[], amountZeros: number): number[] =>\n amountZeros > nums.length\n ? [...nums, ...[...Array(amountZeros - nums.length).keys()].map(() => 0)]\n : nums;\n\nconst convertToNumber = (versionStringPart: string): number => {\n if (!Number.isNaN(Number(versionStringPart))) {\n return Number(versionStringPart);\n }\n const strippedVersion = versionStringPart.split(\"\").reduce((acc, char) => {\n if (Number.isNaN(Number(char))) {\n return acc;\n }\n return acc + char;\n }, \"\");\n return Number(strippedVersion);\n};\n/**\n * Returns true if the current version is smaller than the minVersion, false if equal or bigger.\n * Tags after patch version are ignored, e.g. 1.0.0-beta.1 is considered equal to 1.0.0.\n *\n * @param {Object} params\n * @param {string} params.minVersion Ex: \"1.0.0\"\n * @param {string} params.currentVersion Ex: \"2.0.0\"\n * @returns boolean\n */\nexport const smallerVersion = ({\n minVersion,\n currentVersion,\n}: {\n minVersion: string;\n currentVersion: string;\n}): boolean => {\n const minVersionStandarized = addZeros(\n minVersion.split(\".\").map(convertToNumber),\n AMOUNT_VERSION_PARTS,\n ).join(\".\");\n const currentVersionStandarized = addZeros(\n currentVersion.split(\".\").map(convertToNumber),\n AMOUNT_VERSION_PARTS,\n ).join(\".\");\n // Versions need to have the same number of parts to be comparable\n // Source: https://stackoverflow.com/a/65687141\n return (\n currentVersionStandarized.localeCompare(minVersionStandarized, undefined, {\n numeric: true,\n sensitivity: \"base\",\n }) < 0\n );\n};\n"],
5
- "mappings": "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",
6
- "names": ["src_exports", "__export", "Canister", "FromStringToTokenError", "ICPToken", "InvalidPercentageError", "NullishError", "TokenAmount", "arrayBufferToUint8Array", "arrayOfNumberToUint8Array", "asciiStringToByteArray", "assertNonNullish", "assertPercentageNumber", "bigEndianCrc32", "bigIntToUint8Array", "convertStringToE8s", "createAgent", "createServices", "debounce", "decodeBase32", "defaultAgent", "encodeBase32", "fromDefinedNullable", "fromNullable", "hexStringToUint8Array", "isNullish", "jsonReplacer", "jsonReviver", "nonNullish", "notEmptyString", "numberToUint8Array", "principalToSubAccount", "smallerVersion", "toNullable", "uint8ArrayToArrayOfNumber", "uint8ArrayToBigInt", "uint8ArrayToHexString", "__toCommonJS", "FromStringToTokenError", "E8S_PER_TOKEN", "convertStringToE8s", "value", "amount", "regexMatch", "integral", "fractional", "e8s", "E8S_PER_TOKEN", "ICPToken", "TokenAmount", "_TokenAmount", "token", "tokenAmount", "Canister", "id", "service", "certifiedService", "certified", "import_agent", "import_agent", "defaultAgent", "createAgent", "identity", "host", "fetchRootKey", "agent", "createServices", "canisterId", "serviceOverride", "certifiedServiceOverride", "agentOption", "callTransform", "queryTransform", "idlFactory", "certifiedIdlFactory", "agent", "defaultAgent", "service", "certifiedService", "InvalidPercentageError", "NullishError", "assertNonNullish", "value", "message", "assertPercentageNumber", "percentage", "uint8ArrayToBigInt", "array", "view", "high", "low", "bigIntToUint8Array", "value", "buffer", "numberToUint8Array", "index", "arrayBufferToUint8Array", "uint8ArrayToArrayOfNumber", "arrayOfNumberToUint8Array", "numbers", "asciiStringToByteArray", "text", "c", "hexStringToUint8Array", "hexString", "matches", "assertNonNullish", "byte", "uint8ArrayToHexString", "bytes", "str", "ALPHABET", "LOOKUP_TABLE", "i", "encodeBase32", "input", "skip", "bits", "output", "encodeByte", "byte", "decodeBase32", "decodeChar", "char", "val", "assertNonNullish", "c", "lookUpTable", "crc32", "bytes", "crc", "i", "t", "bigEndianCrc32", "checksumArrayBuf", "debounce", "func", "timeout", "timer", "args", "next", "isNullish", "argument", "nonNullish", "notEmptyString", "value", "toNullable", "value", "nonNullish", "fromNullable", "fromDefinedNullable", "result", "assertNonNullish", "import_principal", "JSON_KEY_BIGINT", "JSON_KEY_PRINCIPAL", "JSON_KEY_UINT8ARRAY", "jsonReplacer", "_key", "value", "nonNullish", "jsonReviver", "mapValue", "key", "principalToSubAccount", "principal", "bytes", "subAccount", "addZeros", "nums", "amountZeros", "convertToNumber", "versionStringPart", "strippedVersion", "acc", "char", "smallerVersion", "minVersion", "currentVersion", "minVersionStandarized"]
3
+ "sources": ["../../src/index.ts", "../../src/enums/token.enums.ts", "../../src/constants/constants.ts", "../../src/parser/token.ts", "../../src/services/canister.ts", "../../src/utils/actor.utils.ts", "../../src/utils/agent.utils.ts", "../../src/utils/asserts.utils.ts", "../../src/utils/arrays.utils.ts", "../../src/utils/base32.utils.ts", "../../src/utils/crc.utils.ts", "../../src/utils/date.utils.ts", "../../src/utils/debounce.utils.ts", "../../src/utils/nullish.utils.ts", "../../src/utils/did.utils.ts", "../../src/utils/json.utils.ts", "../../src/utils/principal.utils.ts", "../../src/utils/version.utils.ts"],
4
+ "sourcesContent": ["export * from \"./enums/token.enums\";\nexport * from \"./parser/token\";\nexport * from \"./services/canister\";\nexport * from \"./types/actor-type.utils\";\nexport type { CanisterOptions } from \"./types/canister.options\";\nexport type { QueryParams } from \"./types/query.params\";\nexport * from \"./utils/actor.utils\";\nexport * from \"./utils/agent.utils\";\nexport * from \"./utils/arrays.utils\";\nexport * from \"./utils/asserts.utils\";\nexport * from \"./utils/base32.utils\";\nexport * from \"./utils/crc.utils\";\nexport * from \"./utils/date.utils\";\nexport * from \"./utils/debounce.utils\";\nexport * from \"./utils/did.utils\";\nexport * from \"./utils/json.utils\";\nexport * from \"./utils/nullish.utils\";\nexport * from \"./utils/principal.utils\";\nexport * from \"./utils/version.utils\";\n", "export enum FromStringToTokenError {\n FractionalMoreThan8Decimals,\n InvalidFormat,\n}\n", "export const E8S_PER_TOKEN = BigInt(100000000);\n", "import { E8S_PER_TOKEN } from \"../constants/constants\";\nimport { FromStringToTokenError } from \"../enums/token.enums\";\n\n/**\n * Receives a string representing a number and returns the big int or error.\n *\n * @param amount - in string format\n * @returns bigint | FromStringToTokenError\n */\nexport const convertStringToE8s = (\n value: string,\n): bigint | FromStringToTokenError => {\n // replace exponential format (1e-4) with plain (0.0001)\n // doesn't support decimals for values >= ~1e16\n let amount = value.includes(\"e\")\n ? Number(value).toLocaleString(\"en\", {\n useGrouping: false,\n maximumFractionDigits: 20,\n })\n : value;\n\n // Remove all instances of \",\" and \"'\".\n amount = amount.trim().replace(/[,']/g, \"\");\n\n // Verify that the string is of the format 1234.5678\n const regexMatch = amount.match(/\\d*(\\.\\d*)?/);\n if (!regexMatch || regexMatch[0] !== amount) {\n return FromStringToTokenError.InvalidFormat;\n }\n\n const [integral, fractional] = amount.split(\".\");\n\n let e8s = BigInt(0);\n\n if (integral) {\n try {\n e8s += BigInt(integral) * E8S_PER_TOKEN;\n } catch {\n return FromStringToTokenError.InvalidFormat;\n }\n }\n\n if (fractional) {\n if (fractional.length > 8) {\n return FromStringToTokenError.FractionalMoreThan8Decimals;\n }\n try {\n e8s += BigInt(fractional.padEnd(8, \"0\"));\n } catch {\n return FromStringToTokenError.InvalidFormat;\n }\n }\n\n return e8s;\n};\n\nexport interface Token {\n symbol: string;\n name: string;\n}\n\nexport const ICPToken: Token = {\n symbol: \"ICP\",\n name: \"Internet Computer\",\n};\n\n/**\n * Represents an amount of tokens.\n *\n * @param e8s - The amount of tokens in bigint.\n * @param token - The token type.\n */\nexport class TokenAmount {\n private constructor(\n protected e8s: bigint,\n public token: Token,\n ) {}\n\n /**\n * Initialize from a bigint. Bigint are considered e8s.\n *\n * @param {amount: bigint; token?: Token;} params\n * @param {bigint} params.amount The amount in bigint format.\n * @param {Token} params.token The token type.\n */\n public static fromE8s({\n amount,\n token,\n }: {\n amount: bigint;\n token: Token;\n }): TokenAmount {\n return new TokenAmount(amount, token);\n }\n\n /**\n * Initialize from a string. Accepted formats:\n *\n * 1234567.8901\n * 1'234'567.8901\n * 1,234,567.8901\n *\n * @param {amount: string; token?: Token;} params\n * @param {string} params.amount The amount in string format.\n * @param {Token} params.token The token type.\n */\n public static fromString({\n amount,\n token,\n }: {\n amount: string;\n token: Token;\n }): TokenAmount | FromStringToTokenError {\n const e8s = convertStringToE8s(amount);\n\n if (typeof e8s === \"bigint\") {\n return new TokenAmount(e8s, token);\n }\n return e8s;\n }\n\n /**\n * Initialize from a number.\n *\n * 1 integer is considered E8S_PER_TOKEN\n *\n * @param {amount: number; token?: Token;} params\n * @param {string} params.amount The amount in number format.\n * @param {Token} params.token The token type.\n */\n public static fromNumber({\n amount,\n token,\n }: {\n amount: number;\n token: Token;\n }): TokenAmount {\n const tokenAmount = TokenAmount.fromString({\n amount: amount.toString(),\n token,\n });\n if (tokenAmount instanceof TokenAmount) {\n return tokenAmount;\n }\n if (tokenAmount === FromStringToTokenError.FractionalMoreThan8Decimals) {\n throw new Error(`Number ${amount} has more than 8 decimals`);\n }\n\n // This should never happen\n throw new Error(`Invalid number ${amount}`);\n }\n\n /**\n *\n * @returns The amount of e8s.\n */\n public toE8s(): bigint {\n return this.e8s;\n }\n}\n", "import type { Principal } from \"@dfinity/principal\";\nimport type { QueryParams } from \"../types/query.params\";\n\nexport abstract class Canister<T> {\n protected constructor(\n private readonly id: Principal,\n protected readonly service: T,\n protected readonly certifiedService: T,\n ) {}\n\n get canisterId(): Principal {\n return this.id;\n }\n\n protected caller = ({ certified = true }: QueryParams): T =>\n certified ? this.certifiedService : this.service;\n}\n", "import type { ActorConfig, ActorSubclass, Agent } from \"@dfinity/agent\";\nimport { Actor } from \"@dfinity/agent\";\nimport type { IDL } from \"@dfinity/candid\";\nimport type { Principal } from \"@dfinity/principal\";\nimport type { CanisterOptions } from \"../types/canister.options\";\nimport { defaultAgent } from \"./agent.utils\";\n\ntype RequiredCanisterOptions<T> = Required<\n Pick<CanisterOptions<T>, \"canisterId\">\n> &\n Omit<CanisterOptions<T>, \"canisterId\">;\n\nexport const createServices = <T>({\n options: {\n canisterId,\n serviceOverride,\n certifiedServiceOverride,\n agent: agentOption,\n callTransform,\n queryTransform,\n },\n idlFactory,\n certifiedIdlFactory,\n}: {\n options: RequiredCanisterOptions<T> &\n Pick<ActorConfig, \"queryTransform\" | \"callTransform\">;\n idlFactory: IDL.InterfaceFactory;\n certifiedIdlFactory: IDL.InterfaceFactory;\n}): {\n service: ActorSubclass<T>;\n certifiedService: ActorSubclass<T>;\n agent: Agent;\n canisterId: Principal;\n} => {\n const agent: Agent = agentOption ?? defaultAgent();\n\n const service: ActorSubclass<T> =\n serviceOverride ??\n Actor.createActor<T>(idlFactory, {\n agent,\n canisterId,\n callTransform,\n queryTransform,\n });\n\n const certifiedService: ActorSubclass<T> =\n certifiedServiceOverride ??\n Actor.createActor<T>(certifiedIdlFactory, {\n agent,\n canisterId,\n callTransform,\n queryTransform,\n });\n\n return { service, certifiedService, agent, canisterId };\n};\n", "import type { Agent, Identity } from \"@dfinity/agent\";\nimport { AnonymousIdentity, HttpAgent } from \"@dfinity/agent\";\n\n/**\n * Get a default agent that connects to mainnet with the anonymous identity.\n * @returns The default agent to use\n */\nexport const defaultAgent = (): Agent =>\n new HttpAgent({\n host: \"https://ic0.app\",\n identity: new AnonymousIdentity(),\n });\n\n/**\n * Create an agent for a given identity\n * @param identity A mandatory identity to use for the agent\n * @param host An optional host to connect to\n * @param fetchRootKey Fetch root key for certificate validation during local development or on testnet\n */\nexport const createAgent = async ({\n identity,\n host,\n fetchRootKey = false,\n}: {\n identity: Identity;\n host?: string;\n fetchRootKey?: boolean;\n}): Promise<HttpAgent> => {\n const agent: HttpAgent = new HttpAgent({\n identity,\n ...(host !== undefined && { host }),\n });\n\n if (fetchRootKey) {\n await agent.fetchRootKey();\n }\n\n return agent;\n};\n", "export class InvalidPercentageError extends Error {}\nexport class NullishError extends Error {}\n\nexport const assertNonNullish: <T>(\n value: T,\n message?: string,\n) => asserts value is NonNullable<T> = <T>(\n value: T,\n message?: string,\n): void => {\n if (value === null || value === undefined) {\n throw new NullishError(message);\n }\n};\nexport const assertPercentageNumber = (percentage: number) => {\n if (percentage < 0 || percentage > 100) {\n throw new InvalidPercentageError(\n `${percentage} is not a valid percentage number.`,\n );\n }\n};\n", "import { assertNonNullish } from \"./asserts.utils\";\n\nexport const uint8ArrayToBigInt = (array: Uint8Array): bigint => {\n const view = new DataView(array.buffer, array.byteOffset, array.byteLength);\n if (typeof view.getBigUint64 === \"function\") {\n return view.getBigUint64(0);\n } else {\n const high = BigInt(view.getUint32(0));\n const low = BigInt(view.getUint32(4));\n\n return (high << BigInt(32)) + low;\n }\n};\n\nexport const bigIntToUint8Array = (value: bigint): Uint8Array => {\n const buffer = new ArrayBuffer(8);\n const view = new DataView(buffer);\n if (typeof view.setBigUint64 === \"function\") {\n view.setBigUint64(0, value);\n } else {\n const high = Number(value >> BigInt(32));\n const low = Number(value & BigInt(0xffffffff));\n\n view.setUint32(0, high);\n view.setUint32(4, low);\n }\n\n return new Uint8Array(buffer);\n};\n\nexport const numberToUint8Array = (value: number): Uint8Array => {\n const view = new DataView(new ArrayBuffer(8));\n for (let index = 7; index >= 0; --index) {\n view.setUint8(index, value % 256);\n value = value >> 8;\n }\n return new Uint8Array(view.buffer);\n};\n\nexport const arrayBufferToUint8Array = (buffer: ArrayBuffer): Uint8Array =>\n new Uint8Array(buffer);\n\nexport const uint8ArrayToArrayOfNumber = (array: Uint8Array): Array<number> =>\n Array.from(array);\n\nexport const arrayOfNumberToUint8Array = (numbers: Array<number>): Uint8Array =>\n new Uint8Array(numbers);\n\nexport const asciiStringToByteArray = (text: string): Array<number> =>\n Array.from(text).map((c) => c.charCodeAt(0));\n\nexport const hexStringToUint8Array = (hexString: string): Uint8Array => {\n const matches = hexString.match(/.{1,2}/g);\n\n assertNonNullish(matches, \"Invalid hex string.\");\n\n return Uint8Array.from(matches.map((byte) => parseInt(byte, 16)));\n};\n\nexport const uint8ArrayToHexString = (bytes: Uint8Array) =>\n bytes.reduce((str, byte) => str + byte.toString(16).padStart(2, \"0\"), \"\");\n", "import { assertNonNullish } from \"./asserts.utils\";\n\nconst ALPHABET = \"abcdefghijklmnopqrstuvwxyz234567\";\n\n// Build a lookup table for decoding.\nconst LOOKUP_TABLE: Record<string, number> = Object.create(null);\nfor (let i = 0; i < ALPHABET.length; i++) {\n LOOKUP_TABLE[ALPHABET[i]] = i;\n}\n\n// Add aliases for rfc4648.\nLOOKUP_TABLE[\"0\"] = LOOKUP_TABLE.o;\nLOOKUP_TABLE[\"1\"] = LOOKUP_TABLE.i;\n\n/**\n * Encode an Uint8Array to a base32 string.\n *\n * @param input The input array to encode.\n * @returns A Base32 string encoding the input.\n */\nexport const encodeBase32 = (input: Uint8Array): string => {\n // How many bits will we skip from the first byte.\n let skip = 0;\n // 5 high bits, carry from one byte to the next.\n let bits = 0;\n\n // The output string in base32.\n let output = \"\";\n\n function encodeByte(byte: number): number {\n if (skip < 0) {\n // we have a carry from the previous byte\n bits |= byte >> -skip;\n } else {\n // no carry\n bits = (byte << skip) & 248;\n }\n\n if (skip > 3) {\n // Not enough data to produce a character, get us another one\n skip -= 8;\n return 1;\n }\n\n if (skip < 4) {\n // produce a character\n output += ALPHABET[bits >> 3];\n skip += 5;\n }\n\n return 0;\n }\n\n for (let i = 0; i < input.length; ) {\n i += encodeByte(input[i]);\n }\n\n return output + (skip < 0 ? ALPHABET[bits >> 3] : \"\");\n};\n\n/**\n * Decode a base32 string to Uint8Array.\n *\n * @param input The input string to decode.\n * @param input The base32 encoded string to decode.\n */\nexport function decodeBase32(input: string): Uint8Array {\n // how many bits we have from the previous character.\n let skip = 0;\n // current byte we're producing.\n let byte = 0;\n\n const output = new Uint8Array(((input.length * 4) / 3) | 0);\n let o = 0;\n\n function decodeChar(char: string) {\n // Consume a character from the stream, store\n // the output in this.output. As before, better\n // to use update().\n let val = LOOKUP_TABLE[char.toLowerCase()];\n assertNonNullish(val, `Invalid character: ${JSON.stringify(char)}`);\n\n // move to the high bits\n val <<= 3;\n byte |= val >>> skip;\n skip += 5;\n\n if (skip >= 8) {\n // We have enough bytes to produce an output\n output[o++] = byte;\n skip -= 8;\n\n if (skip > 0) {\n byte = (val << (5 - skip)) & 255;\n } else {\n byte = 0;\n }\n }\n }\n\n for (const c of input) {\n decodeChar(c);\n }\n\n return output.slice(0, o);\n}\n", "// This file is translated to JavaScript from\n// https://lxp32.github.io/docs/a-simple-example-crc32-calculation/\nconst lookUpTable: Uint32Array = new Uint32Array([\n 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f,\n 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988,\n 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, 0x1db71064, 0x6ab020f2,\n 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,\n 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9,\n 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172,\n 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 0x35b5a8fa, 0x42b2986c,\n 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,\n 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423,\n 0xcfba9599, 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924,\n 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, 0x01db7106,\n 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,\n 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d,\n 0x91646c97, 0xe6635c01, 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e,\n 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950,\n 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,\n 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7,\n 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0,\n 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa,\n 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,\n 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81,\n 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a,\n 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 0xe3630b12, 0x94643b84,\n 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,\n 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb,\n 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc,\n 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 0xd6d6a3e8, 0xa1d1937e,\n 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,\n 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55,\n 0x316e8eef, 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236,\n 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, 0xb2bd0b28,\n 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,\n 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f,\n 0x72076785, 0x05005713, 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38,\n 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242,\n 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,\n 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69,\n 0x616bffd3, 0x166ccf45, 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2,\n 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc,\n 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,\n 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693,\n 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94,\n 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d,\n]);\n\nconst crc32 = (bytes: Uint8Array): number => {\n let crc = -1;\n\n for (let i = 0; i < bytes.length; i++) {\n const byte = bytes[i];\n const t = (byte ^ crc) & 0xff;\n crc = lookUpTable[t] ^ (crc >>> 8);\n }\n\n return (crc ^ -1) >>> 0;\n};\n\nexport const bigEndianCrc32 = (bytes: Uint8Array): Uint8Array => {\n const checksumArrayBuf = new ArrayBuffer(4);\n const view = new DataView(checksumArrayBuf);\n view.setUint32(0, crc32(bytes), false);\n return new Uint8Array(checksumArrayBuf);\n};\n", "const SECONDS_IN_MINUTE = 60;\nconst MINUTES_IN_HOUR = 60;\nconst HOURS_IN_DAY = 24;\nconst DAYS_IN_NON_LEAP_YEAR = 365;\n\nexport interface I18nSecondsToDuration {\n year: string;\n year_plural: string;\n month: string;\n month_plural: string;\n day: string;\n day_plural: string;\n hour: string;\n hour_plural: string;\n minute: string;\n minute_plural: string;\n second: string;\n second_plural: string;\n}\n\nconst EN_TIME: I18nSecondsToDuration = {\n year: \"year\",\n year_plural: \"years\",\n month: \"month\",\n month_plural: \"months\",\n day: \"day\",\n day_plural: \"days\",\n hour: \"hour\",\n hour_plural: \"hours\",\n minute: \"minute\",\n minute_plural: \"minutes\",\n second: \"second\",\n second_plural: \"seconds\",\n};\n\n/**\n * Convert seconds to a human-readable duration, such as \"6 days, 10 hours.\"\n * @param {Object} options - The options object.\n * @param {bigint} options.seconds - The number of seconds to convert.\n * @param {I18nSecondsToDuration} [options.i18n] - The i18n object for customizing language and units. Defaults to English.\n * @returns {string} The human-readable duration string.\n */\nexport const secondsToDuration = ({\n seconds,\n i18n = EN_TIME,\n}: {\n seconds: bigint;\n i18n?: I18nSecondsToDuration;\n}): string => {\n let minutes = seconds / BigInt(SECONDS_IN_MINUTE);\n\n let hours = minutes / BigInt(MINUTES_IN_HOUR);\n minutes -= hours * BigInt(MINUTES_IN_HOUR);\n\n let days = hours / BigInt(HOURS_IN_DAY);\n hours -= days * BigInt(HOURS_IN_DAY);\n\n const years = fullYearsInDays(days);\n days -= daysInYears(years);\n\n const periods = [\n createLabel(\"year\", years),\n createLabel(\"day\", days),\n createLabel(\"hour\", hours),\n createLabel(\"minute\", minutes),\n ...(seconds > BigInt(0) && seconds < BigInt(60)\n ? [createLabel(\"second\", seconds)]\n : []),\n ];\n\n return periods\n .filter(({ amount }) => amount > 0)\n .slice(0, 2)\n .map(\n (labelInfo) =>\n `${labelInfo.amount} ${\n labelInfo.amount === 1\n ? i18n[labelInfo.labelKey]\n : i18n[`${labelInfo.labelKey}_plural`]\n }`,\n )\n .join(\", \");\n};\n\nconst fullYearsInDays = (days: bigint): bigint => {\n // Use integer division.\n let years = days / BigInt(DAYS_IN_NON_LEAP_YEAR);\n while (daysInYears(years) > days) {\n years--;\n }\n return years;\n};\n\nconst daysInYears = (years: bigint): bigint => {\n // Use integer division.\n const leapDays = years / BigInt(4);\n return years * BigInt(DAYS_IN_NON_LEAP_YEAR) + leapDays;\n};\n\ntype LabelKey = \"year\" | \"month\" | \"day\" | \"hour\" | \"minute\" | \"second\";\ntype LabelInfo = {\n labelKey: LabelKey;\n amount: number;\n};\nconst createLabel = (labelKey: LabelKey, amount: bigint): LabelInfo => ({\n labelKey,\n amount: Number(amount),\n});\n", "/* eslint-disable-next-line @typescript-eslint/ban-types */\nexport const debounce = (func: Function, timeout?: number) => {\n let timer: NodeJS.Timer | undefined;\n\n return (...args: unknown[]) => {\n const next = () => func(...args);\n\n if (timer) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore TypeScript global and window confusion even if we are using @types/node\n clearTimeout(timer);\n }\n\n timer = setTimeout(\n next,\n timeout !== undefined && timeout > 0 ? timeout : 300,\n );\n };\n};\n", "/** Is null or undefined */\nexport const isNullish = <T>(\n argument: T | undefined | null,\n): argument is undefined | null => argument === null || argument === undefined;\n\n/** Not null and not undefined */\nexport const nonNullish = <T>(\n argument: T | undefined | null,\n): argument is NonNullable<T> => !isNullish(argument);\n\n/** Not null and not undefined and not empty */\nexport const notEmptyString = (value: string | undefined | null): boolean =>\n nonNullish(value) && value !== \"\";\n", "import { assertNonNullish } from \"./asserts.utils\";\nimport { nonNullish } from \"./nullish.utils\";\n\nexport const toNullable = <T>(value?: T | null): [] | [T] => {\n return nonNullish(value) ? [value] : [];\n};\n\nexport const fromNullable = <T>(value: [] | [T]): T | undefined => {\n return value?.[0];\n};\n\nexport const fromDefinedNullable = <T>(value: [] | [T]): T => {\n const result = fromNullable(value);\n\n assertNonNullish(result);\n\n return result;\n};\n", "import { Principal } from \"@dfinity/principal\";\nimport { nonNullish } from \"./nullish.utils\";\n\nconst JSON_KEY_BIGINT = \"__bigint__\";\nconst JSON_KEY_PRINCIPAL = \"__principal__\";\nconst JSON_KEY_UINT8ARRAY = \"__uint8array__\";\n\n/**\n * A parser that interprets revived BigInt, Principal, and Uint8Array when constructing JavaScript values or objects.\n */\nexport const jsonReplacer = (_key: string, value: unknown): unknown => {\n if (typeof value === \"bigint\") {\n return { [JSON_KEY_BIGINT]: `${value}` };\n }\n\n if (nonNullish(value) && value instanceof Principal) {\n return { [JSON_KEY_PRINCIPAL]: value.toText() };\n }\n\n if (nonNullish(value) && value instanceof Uint8Array) {\n return { [JSON_KEY_UINT8ARRAY]: Array.from(value) };\n }\n\n return value;\n};\n\n/**\n * A function that alters the behavior of the stringification process for BigInt, Principal and Uint8Array.\n */\nexport const jsonReviver = (_key: string, value: unknown): unknown => {\n const mapValue = <T>(key: string): T => (value as Record<string, T>)[key];\n\n if (\n nonNullish(value) &&\n typeof value === \"object\" &&\n JSON_KEY_BIGINT in value\n ) {\n return BigInt(mapValue(JSON_KEY_BIGINT));\n }\n\n if (\n nonNullish(value) &&\n typeof value === \"object\" &&\n JSON_KEY_PRINCIPAL in value\n ) {\n return Principal.fromText(mapValue(JSON_KEY_PRINCIPAL));\n }\n\n if (\n nonNullish(value) &&\n typeof value === \"object\" &&\n JSON_KEY_UINT8ARRAY in value\n ) {\n return Uint8Array.from(mapValue(JSON_KEY_UINT8ARRAY));\n }\n\n return value;\n};\n", "import type { Principal } from \"@dfinity/principal\";\n\n/**\n * Convert a principal to a Uint8Array 32 length.\n * e.g. Useful to convert a canister ID when topping up cycles with the Cmc canister\n * @param principal The principal that needs to be converted to Subaccount\n */\nexport const principalToSubAccount = (principal: Principal): Uint8Array => {\n const bytes: Uint8Array = principal.toUint8Array();\n const subAccount: Uint8Array = new Uint8Array(32);\n subAccount[0] = bytes.length;\n subAccount.set(bytes, 1);\n return subAccount;\n};\n", "const AMOUNT_VERSION_PARTS = 3;\nconst addZeros = (nums: number[], amountZeros: number): number[] =>\n amountZeros > nums.length\n ? [...nums, ...[...Array(amountZeros - nums.length).keys()].map(() => 0)]\n : nums;\n\nconst convertToNumber = (versionStringPart: string): number => {\n if (!Number.isNaN(Number(versionStringPart))) {\n return Number(versionStringPart);\n }\n const strippedVersion = versionStringPart.split(\"\").reduce((acc, char) => {\n if (Number.isNaN(Number(char))) {\n return acc;\n }\n return acc + char;\n }, \"\");\n return Number(strippedVersion);\n};\n/**\n * Returns true if the current version is smaller than the minVersion, false if equal or bigger.\n * Tags after patch version are ignored, e.g. 1.0.0-beta.1 is considered equal to 1.0.0.\n *\n * @param {Object} params\n * @param {string} params.minVersion Ex: \"1.0.0\"\n * @param {string} params.currentVersion Ex: \"2.0.0\"\n * @returns boolean\n */\nexport const smallerVersion = ({\n minVersion,\n currentVersion,\n}: {\n minVersion: string;\n currentVersion: string;\n}): boolean => {\n const minVersionStandarized = addZeros(\n minVersion.split(\".\").map(convertToNumber),\n AMOUNT_VERSION_PARTS,\n ).join(\".\");\n const currentVersionStandarized = addZeros(\n currentVersion.split(\".\").map(convertToNumber),\n AMOUNT_VERSION_PARTS,\n ).join(\".\");\n // Versions need to have the same number of parts to be comparable\n // Source: https://stackoverflow.com/a/65687141\n return (\n currentVersionStandarized.localeCompare(minVersionStandarized, undefined, {\n numeric: true,\n sensitivity: \"base\",\n }) < 0\n );\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["src_exports", "__export", "Canister", "FromStringToTokenError", "ICPToken", "InvalidPercentageError", "NullishError", "TokenAmount", "arrayBufferToUint8Array", "arrayOfNumberToUint8Array", "asciiStringToByteArray", "assertNonNullish", "assertPercentageNumber", "bigEndianCrc32", "bigIntToUint8Array", "convertStringToE8s", "createAgent", "createServices", "debounce", "decodeBase32", "defaultAgent", "encodeBase32", "fromDefinedNullable", "fromNullable", "hexStringToUint8Array", "isNullish", "jsonReplacer", "jsonReviver", "nonNullish", "notEmptyString", "numberToUint8Array", "principalToSubAccount", "secondsToDuration", "smallerVersion", "toNullable", "uint8ArrayToArrayOfNumber", "uint8ArrayToBigInt", "uint8ArrayToHexString", "__toCommonJS", "FromStringToTokenError", "E8S_PER_TOKEN", "convertStringToE8s", "value", "amount", "regexMatch", "integral", "fractional", "e8s", "E8S_PER_TOKEN", "ICPToken", "TokenAmount", "_TokenAmount", "token", "tokenAmount", "Canister", "id", "service", "certifiedService", "certified", "import_agent", "import_agent", "defaultAgent", "createAgent", "identity", "host", "fetchRootKey", "agent", "createServices", "canisterId", "serviceOverride", "certifiedServiceOverride", "agentOption", "callTransform", "queryTransform", "idlFactory", "certifiedIdlFactory", "agent", "defaultAgent", "service", "certifiedService", "InvalidPercentageError", "NullishError", "assertNonNullish", "value", "message", "assertPercentageNumber", "percentage", "uint8ArrayToBigInt", "array", "view", "high", "low", "bigIntToUint8Array", "value", "buffer", "numberToUint8Array", "index", "arrayBufferToUint8Array", "uint8ArrayToArrayOfNumber", "arrayOfNumberToUint8Array", "numbers", "asciiStringToByteArray", "text", "c", "hexStringToUint8Array", "hexString", "matches", "assertNonNullish", "byte", "uint8ArrayToHexString", "bytes", "str", "ALPHABET", "LOOKUP_TABLE", "i", "encodeBase32", "input", "skip", "bits", "output", "encodeByte", "byte", "decodeBase32", "decodeChar", "char", "val", "assertNonNullish", "c", "lookUpTable", "crc32", "bytes", "crc", "i", "t", "bigEndianCrc32", "checksumArrayBuf", "EN_TIME", "secondsToDuration", "seconds", "i18n", "minutes", "hours", "days", "years", "fullYearsInDays", "daysInYears", "createLabel", "amount", "labelInfo", "leapDays", "labelKey", "debounce", "func", "timeout", "timer", "args", "next", "isNullish", "argument", "nonNullish", "notEmptyString", "value", "toNullable", "value", "nonNullish", "fromNullable", "fromDefinedNullable", "result", "assertNonNullish", "import_principal", "JSON_KEY_BIGINT", "JSON_KEY_PRINCIPAL", "JSON_KEY_UINT8ARRAY", "jsonReplacer", "_key", "value", "nonNullish", "jsonReviver", "mapValue", "key", "principalToSubAccount", "principal", "bytes", "subAccount", "addZeros", "nums", "amountZeros", "convertToNumber", "versionStringPart", "strippedVersion", "acc", "char", "smallerVersion", "minVersion", "currentVersion", "minVersionStandarized"]
7
7
  }
package/dist/esm/index.js CHANGED
@@ -1,2 +1,2 @@
1
- var g=(r=>(r[r.FractionalMoreThan8Decimals=0]="FractionalMoreThan8Decimals",r[r.InvalidFormat=1]="InvalidFormat",r))(g||{});var A=BigInt(1e8);var O=t=>{let e=t.includes("e")?Number(t).toLocaleString("en",{useGrouping:!1,maximumFractionDigits:20}):t;e=e.trim().replace(/[,']/g,"");let r=e.match(/\d*(\.\d*)?/);if(!r||r[0]!==e)return 1;let[n,o]=e.split("."),i=BigInt(0);if(n)try{i+=BigInt(n)*A}catch{return 1}if(o){if(o.length>8)return 0;try{i+=BigInt(o.padEnd(8,"0"))}catch{return 1}}return i},K={symbol:"ICP",name:"Internet Computer"},T=class t{constructor(e,r){this.e8s=e;this.token=r}static fromE8s({amount:e,token:r}){return new t(e,r)}static fromString({amount:e,token:r}){let n=O(e);return typeof n=="bigint"?new t(n,r):n}static fromNumber({amount:e,token:r}){let n=t.fromString({amount:e.toString(),token:r});if(n instanceof t)return n;throw n===0?new Error(`Number ${e} has more than 8 decimals`):new Error(`Invalid number ${e}`)}toE8s(){return this.e8s}};var N=class{constructor(e,r,n){this.id=e;this.service=r;this.certifiedService=n;this.caller=({certified:e=!0})=>e?this.certifiedService:this.service}get canisterId(){return this.id}};import{Actor as w}from"@dfinity/agent";import{AnonymousIdentity as P,HttpAgent as U}from"@dfinity/agent";var h=()=>new U({host:"https://ic0.app",identity:new P}),J=async({identity:t,host:e,fetchRootKey:r=!1})=>{let n=new U({identity:t,...e!==void 0&&{host:e}});return r&&await n.fetchRootKey(),n};var Y=({options:{canisterId:t,serviceOverride:e,certifiedServiceOverride:r,agent:n,callTransform:o,queryTransform:i},idlFactory:x,certifiedIdlFactory:a})=>{let s=n??h(),B=e??w.createActor(x,{agent:s,canisterId:t,callTransform:o,queryTransform:i}),_=r??w.createActor(a,{agent:s,canisterId:t,callTransform:o,queryTransform:i});return{service:B,certifiedService:_,agent:s,canisterId:t}};var p=class extends Error{},u=class extends Error{},d=(t,e)=>{if(t==null)throw new u(e)},G=t=>{if(t<0||t>100)throw new p(`${t} is not a valid percentage number.`)};var Z=t=>{let e=new DataView(t.buffer,t.byteOffset,t.byteLength);if(typeof e.getBigUint64=="function")return e.getBigUint64(0);{let r=BigInt(e.getUint32(0)),n=BigInt(e.getUint32(4));return(r<<BigInt(32))+n}},ee=t=>{let e=new ArrayBuffer(8),r=new DataView(e);if(typeof r.setBigUint64=="function")r.setBigUint64(0,t);else{let n=Number(t>>BigInt(32)),o=Number(t&BigInt(4294967295));r.setUint32(0,n),r.setUint32(4,o)}return new Uint8Array(e)},te=t=>{let e=new DataView(new ArrayBuffer(8));for(let r=7;r>=0;--r)e.setUint8(r,t%256),t=t>>8;return new Uint8Array(e.buffer)},re=t=>new Uint8Array(t),ne=t=>Array.from(t),oe=t=>new Uint8Array(t),ie=t=>Array.from(t).map(e=>e.charCodeAt(0)),ce=t=>{let e=t.match(/.{1,2}/g);return d(e,"Invalid hex string."),Uint8Array.from(e.map(r=>parseInt(r,16)))},xe=t=>t.reduce((e,r)=>e+r.toString(16).padStart(2,"0"),"");var b="abcdefghijklmnopqrstuvwxyz234567",f=Object.create(null);for(let t=0;t<b.length;t++)f[b[t]]=t;f[0]=f.o;f[1]=f.i;var fe=t=>{let e=0,r=0,n="";function o(i){return e<0?r|=i>>-e:r=i<<e&248,e>3?(e-=8,1):(e<4&&(n+=b[r>>3],e+=5),0)}for(let i=0;i<t.length;)i+=o(t[i]);return n+(e<0?b[r>>3]:"")};function be(t){let e=0,r=0,n=new Uint8Array(t.length*4/3|0),o=0;function i(x){let a=f[x.toLowerCase()];d(a,`Invalid character: ${JSON.stringify(x)}`),a<<=3,r|=a>>>e,e+=5,e>=8&&(n[o++]=r,e-=8,e>0?r=a<<5-e&255:r=0)}for(let x of t)i(x);return n.slice(0,o)}var E=new Uint32Array([0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117]),R=t=>{let e=-1;for(let r=0;r<t.length;r++){let o=(t[r]^e)&255;e=E[o]^e>>>8}return(e^-1)>>>0},pe=t=>{let e=new ArrayBuffer(4);return new DataView(e).setUint32(0,R(t),!1),new Uint8Array(e)};var me=(t,e)=>{let r;return(...n)=>{let o=()=>t(...n);r&&clearTimeout(r),r=setTimeout(o,e!==void 0&&e>0?e:300)}};var C=t=>t==null,c=t=>!C(t),ye=t=>c(t)&&t!=="";var Ne=t=>c(t)?[t]:[],V=t=>t?.[0],Ue=t=>{let e=V(t);return d(e),e};import{Principal as I}from"@dfinity/principal";var m="__bigint__",l="__principal__",y="__uint8array__",Se=(t,e)=>typeof e=="bigint"?{[m]:`${e}`}:c(e)&&e instanceof I?{[l]:e.toText()}:c(e)&&e instanceof Uint8Array?{[y]:Array.from(e)}:e,ke=(t,e)=>{let r=n=>e[n];return c(e)&&typeof e=="object"&&m in e?BigInt(r(m)):c(e)&&typeof e=="object"&&l in e?I.fromText(r(l)):c(e)&&typeof e=="object"&&y in e?Uint8Array.from(r(y)):e};var _e=t=>{let e=t.toUint8Array(),r=new Uint8Array(32);return r[0]=e.length,r.set(e,1),r};var S=(t,e)=>e>t.length?[...t,...[...Array(e-t.length).keys()].map(()=>0)]:t,k=t=>{if(!Number.isNaN(Number(t)))return Number(t);let e=t.split("").reduce((r,n)=>Number.isNaN(Number(n))?r:r+n,"");return Number(e)},Pe=({minVersion:t,currentVersion:e})=>{let r=S(t.split(".").map(k),3).join(".");return S(e.split(".").map(k),3).join(".").localeCompare(r,void 0,{numeric:!0,sensitivity:"base"})<0};export{N as Canister,g as FromStringToTokenError,K as ICPToken,p as InvalidPercentageError,u as NullishError,T as TokenAmount,re as arrayBufferToUint8Array,oe as arrayOfNumberToUint8Array,ie as asciiStringToByteArray,d as assertNonNullish,G as assertPercentageNumber,pe as bigEndianCrc32,ee as bigIntToUint8Array,O as convertStringToE8s,J as createAgent,Y as createServices,me as debounce,be as decodeBase32,h as defaultAgent,fe as encodeBase32,Ue as fromDefinedNullable,V as fromNullable,ce as hexStringToUint8Array,C as isNullish,Se as jsonReplacer,ke as jsonReviver,c as nonNullish,ye as notEmptyString,te as numberToUint8Array,_e as principalToSubAccount,Pe as smallerVersion,Ne as toNullable,ne as uint8ArrayToArrayOfNumber,Z as uint8ArrayToBigInt,xe as uint8ArrayToHexString};
1
+ var A=(r=>(r[r.FractionalMoreThan8Decimals=0]="FractionalMoreThan8Decimals",r[r.InvalidFormat=1]="InvalidFormat",r))(A||{});var T=BigInt(1e8);var k=t=>{let e=t.includes("e")?Number(t).toLocaleString("en",{useGrouping:!1,maximumFractionDigits:20}):t;e=e.trim().replace(/[,']/g,"");let r=e.match(/\d*(\.\d*)?/);if(!r||r[0]!==e)return 1;let[n,o]=e.split("."),i=BigInt(0);if(n)try{i+=BigInt(n)*T}catch{return 1}if(o){if(o.length>8)return 0;try{i+=BigInt(o.padEnd(8,"0"))}catch{return 1}}return i},$={symbol:"ICP",name:"Internet Computer"},N=class t{constructor(e,r){this.e8s=e;this.token=r}static fromE8s({amount:e,token:r}){return new t(e,r)}static fromString({amount:e,token:r}){let n=k(e);return typeof n=="bigint"?new t(n,r):n}static fromNumber({amount:e,token:r}){let n=t.fromString({amount:e.toString(),token:r});if(n instanceof t)return n;throw n===0?new Error(`Number ${e} has more than 8 decimals`):new Error(`Invalid number ${e}`)}toE8s(){return this.e8s}};var I=class{constructor(e,r,n){this.id=e;this.service=r;this.certifiedService=n;this.caller=({certified:e=!0})=>e?this.certifiedService:this.service}get canisterId(){return this.id}};import{Actor as U}from"@dfinity/agent";import{AnonymousIdentity as D,HttpAgent as _}from"@dfinity/agent";var h=()=>new _({host:"https://ic0.app",identity:new D}),z=async({identity:t,host:e,fetchRootKey:r=!1})=>{let n=new _({identity:t,...e!==void 0&&{host:e}});return r&&await n.fetchRootKey(),n};var X=({options:{canisterId:t,serviceOverride:e,certifiedServiceOverride:r,agent:n,callTransform:o,queryTransform:i},idlFactory:x,certifiedIdlFactory:a})=>{let u=n??h(),O=e??U.createActor(x,{agent:u,canisterId:t,callTransform:o,queryTransform:i}),R=r??U.createActor(a,{agent:u,canisterId:t,callTransform:o,queryTransform:i});return{service:O,certifiedService:R,agent:u,canisterId:t}};var p=class extends Error{},m=class extends Error{},s=(t,e)=>{if(t==null)throw new m(e)},ee=t=>{if(t<0||t>100)throw new p(`${t} is not a valid percentage number.`)};var ne=t=>{let e=new DataView(t.buffer,t.byteOffset,t.byteLength);if(typeof e.getBigUint64=="function")return e.getBigUint64(0);{let r=BigInt(e.getUint32(0)),n=BigInt(e.getUint32(4));return(r<<BigInt(32))+n}},oe=t=>{let e=new ArrayBuffer(8),r=new DataView(e);if(typeof r.setBigUint64=="function")r.setBigUint64(0,t);else{let n=Number(t>>BigInt(32)),o=Number(t&BigInt(4294967295));r.setUint32(0,n),r.setUint32(4,o)}return new Uint8Array(e)},ie=t=>{let e=new DataView(new ArrayBuffer(8));for(let r=7;r>=0;--r)e.setUint8(r,t%256),t=t>>8;return new Uint8Array(e.buffer)},ae=t=>new Uint8Array(t),ce=t=>Array.from(t),xe=t=>new Uint8Array(t),se=t=>Array.from(t).map(e=>e.charCodeAt(0)),de=t=>{let e=t.match(/.{1,2}/g);return s(e,"Invalid hex string."),Uint8Array.from(e.map(r=>parseInt(r,16)))},fe=t=>t.reduce((e,r)=>e+r.toString(16).padStart(2,"0"),"");var b="abcdefghijklmnopqrstuvwxyz234567",d=Object.create(null);for(let t=0;t<b.length;t++)d[b[t]]=t;d[0]=d.o;d[1]=d.i;var pe=t=>{let e=0,r=0,n="";function o(i){return e<0?r|=i>>-e:r=i<<e&248,e>3?(e-=8,1):(e<4&&(n+=b[r>>3],e+=5),0)}for(let i=0;i<t.length;)i+=o(t[i]);return n+(e<0?b[r>>3]:"")};function me(t){let e=0,r=0,n=new Uint8Array(t.length*4/3|0),o=0;function i(x){let a=d[x.toLowerCase()];s(a,`Invalid character: ${JSON.stringify(x)}`),a<<=3,r|=a>>>e,e+=5,e>=8&&(n[o++]=r,e-=8,e>0?r=a<<5-e&255:r=0)}for(let x of t)i(x);return n.slice(0,o)}var P=new Uint32Array([0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117]),L=t=>{let e=-1;for(let r=0;r<t.length;r++){let o=(t[r]^e)&255;e=P[o]^e>>>8}return(e^-1)>>>0},ye=t=>{let e=new ArrayBuffer(4);return new DataView(e).setUint32(0,L(t),!1),new Uint8Array(e)};var C={year:"year",year_plural:"years",month:"month",month_plural:"months",day:"day",day_plural:"days",hour:"hour",hour_plural:"hours",minute:"minute",minute_plural:"minutes",second:"second",second_plural:"seconds"},Ae=({seconds:t,i18n:e=C})=>{let r=t/BigInt(60),n=r/BigInt(60);r-=n*BigInt(60);let o=n/BigInt(24);n-=o*BigInt(24);let i=V(o);return o-=S(i),[f("year",i),f("day",o),f("hour",n),f("minute",r),...t>BigInt(0)&&t<BigInt(60)?[f("second",t)]:[]].filter(({amount:a})=>a>0).slice(0,2).map(a=>`${a.amount} ${a.amount===1?e[a.labelKey]:e[`${a.labelKey}_plural`]}`).join(", ")},V=t=>{let e=t/BigInt(365);for(;S(e)>t;)e--;return e},S=t=>{let e=t/BigInt(4);return t*BigInt(365)+e},f=(t,e)=>({labelKey:t,amount:Number(e)});var Ne=(t,e)=>{let r;return(...n)=>{let o=()=>t(...n);r&&clearTimeout(r),r=setTimeout(o,e!==void 0&&e>0?e:300)}};var Y=t=>t==null,c=t=>!Y(t),_e=t=>c(t)&&t!=="";var we=t=>c(t)?[t]:[],K=t=>t?.[0],Be=t=>{let e=K(t);return s(e),e};import{Principal as w}from"@dfinity/principal";var l="__bigint__",y="__principal__",g="__uint8array__",ke=(t,e)=>typeof e=="bigint"?{[l]:`${e}`}:c(e)&&e instanceof w?{[y]:e.toText()}:c(e)&&e instanceof Uint8Array?{[g]:Array.from(e)}:e,De=(t,e)=>{let r=n=>e[n];return c(e)&&typeof e=="object"&&l in e?BigInt(r(l)):c(e)&&typeof e=="object"&&y in e?w.fromText(r(y)):c(e)&&typeof e=="object"&&g in e?Uint8Array.from(r(g)):e};var Le=t=>{let e=t.toUint8Array(),r=new Uint8Array(32);return r[0]=e.length,r.set(e,1),r};var B=(t,e)=>e>t.length?[...t,...[...Array(e-t.length).keys()].map(()=>0)]:t,E=t=>{if(!Number.isNaN(Number(t)))return Number(t);let e=t.split("").reduce((r,n)=>Number.isNaN(Number(n))?r:r+n,"");return Number(e)},Ve=({minVersion:t,currentVersion:e})=>{let r=B(t.split(".").map(E),3).join(".");return B(e.split(".").map(E),3).join(".").localeCompare(r,void 0,{numeric:!0,sensitivity:"base"})<0};export{I as Canister,A as FromStringToTokenError,$ as ICPToken,p as InvalidPercentageError,m as NullishError,N as TokenAmount,ae as arrayBufferToUint8Array,xe as arrayOfNumberToUint8Array,se as asciiStringToByteArray,s as assertNonNullish,ee as assertPercentageNumber,ye as bigEndianCrc32,oe as bigIntToUint8Array,k as convertStringToE8s,z as createAgent,X as createServices,Ne as debounce,me as decodeBase32,h as defaultAgent,pe as encodeBase32,Be as fromDefinedNullable,K as fromNullable,de as hexStringToUint8Array,Y as isNullish,ke as jsonReplacer,De as jsonReviver,c as nonNullish,_e as notEmptyString,ie as numberToUint8Array,Le as principalToSubAccount,Ae as secondsToDuration,Ve as smallerVersion,we as toNullable,ce as uint8ArrayToArrayOfNumber,ne as uint8ArrayToBigInt,fe as uint8ArrayToHexString};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/enums/token.enums.ts", "../../src/constants/constants.ts", "../../src/parser/token.ts", "../../src/services/canister.ts", "../../src/utils/actor.utils.ts", "../../src/utils/agent.utils.ts", "../../src/utils/asserts.utils.ts", "../../src/utils/arrays.utils.ts", "../../src/utils/base32.utils.ts", "../../src/utils/crc.utils.ts", "../../src/utils/debounce.utils.ts", "../../src/utils/nullish.utils.ts", "../../src/utils/did.utils.ts", "../../src/utils/json.utils.ts", "../../src/utils/principal.utils.ts", "../../src/utils/version.utils.ts"],
4
- "sourcesContent": ["export enum FromStringToTokenError {\n FractionalMoreThan8Decimals,\n InvalidFormat,\n}\n", "export const E8S_PER_TOKEN = BigInt(100000000);\n", "import { E8S_PER_TOKEN } from \"../constants/constants\";\nimport { FromStringToTokenError } from \"../enums/token.enums\";\n\n/**\n * Receives a string representing a number and returns the big int or error.\n *\n * @param amount - in string format\n * @returns bigint | FromStringToTokenError\n */\nexport const convertStringToE8s = (\n value: string,\n): bigint | FromStringToTokenError => {\n // replace exponential format (1e-4) with plain (0.0001)\n // doesn't support decimals for values >= ~1e16\n let amount = value.includes(\"e\")\n ? Number(value).toLocaleString(\"en\", {\n useGrouping: false,\n maximumFractionDigits: 20,\n })\n : value;\n\n // Remove all instances of \",\" and \"'\".\n amount = amount.trim().replace(/[,']/g, \"\");\n\n // Verify that the string is of the format 1234.5678\n const regexMatch = amount.match(/\\d*(\\.\\d*)?/);\n if (!regexMatch || regexMatch[0] !== amount) {\n return FromStringToTokenError.InvalidFormat;\n }\n\n const [integral, fractional] = amount.split(\".\");\n\n let e8s = BigInt(0);\n\n if (integral) {\n try {\n e8s += BigInt(integral) * E8S_PER_TOKEN;\n } catch {\n return FromStringToTokenError.InvalidFormat;\n }\n }\n\n if (fractional) {\n if (fractional.length > 8) {\n return FromStringToTokenError.FractionalMoreThan8Decimals;\n }\n try {\n e8s += BigInt(fractional.padEnd(8, \"0\"));\n } catch {\n return FromStringToTokenError.InvalidFormat;\n }\n }\n\n return e8s;\n};\n\nexport interface Token {\n symbol: string;\n name: string;\n}\n\nexport const ICPToken: Token = {\n symbol: \"ICP\",\n name: \"Internet Computer\",\n};\n\n/**\n * Represents an amount of tokens.\n *\n * @param e8s - The amount of tokens in bigint.\n * @param token - The token type.\n */\nexport class TokenAmount {\n private constructor(\n protected e8s: bigint,\n public token: Token,\n ) {}\n\n /**\n * Initialize from a bigint. Bigint are considered e8s.\n *\n * @param {amount: bigint; token?: Token;} params\n * @param {bigint} params.amount The amount in bigint format.\n * @param {Token} params.token The token type.\n */\n public static fromE8s({\n amount,\n token,\n }: {\n amount: bigint;\n token: Token;\n }): TokenAmount {\n return new TokenAmount(amount, token);\n }\n\n /**\n * Initialize from a string. Accepted formats:\n *\n * 1234567.8901\n * 1'234'567.8901\n * 1,234,567.8901\n *\n * @param {amount: string; token?: Token;} params\n * @param {string} params.amount The amount in string format.\n * @param {Token} params.token The token type.\n */\n public static fromString({\n amount,\n token,\n }: {\n amount: string;\n token: Token;\n }): TokenAmount | FromStringToTokenError {\n const e8s = convertStringToE8s(amount);\n\n if (typeof e8s === \"bigint\") {\n return new TokenAmount(e8s, token);\n }\n return e8s;\n }\n\n /**\n * Initialize from a number.\n *\n * 1 integer is considered E8S_PER_TOKEN\n *\n * @param {amount: number; token?: Token;} params\n * @param {string} params.amount The amount in number format.\n * @param {Token} params.token The token type.\n */\n public static fromNumber({\n amount,\n token,\n }: {\n amount: number;\n token: Token;\n }): TokenAmount {\n const tokenAmount = TokenAmount.fromString({\n amount: amount.toString(),\n token,\n });\n if (tokenAmount instanceof TokenAmount) {\n return tokenAmount;\n }\n if (tokenAmount === FromStringToTokenError.FractionalMoreThan8Decimals) {\n throw new Error(`Number ${amount} has more than 8 decimals`);\n }\n\n // This should never happen\n throw new Error(`Invalid number ${amount}`);\n }\n\n /**\n *\n * @returns The amount of e8s.\n */\n public toE8s(): bigint {\n return this.e8s;\n }\n}\n", "import type { Principal } from \"@dfinity/principal\";\nimport type { QueryParams } from \"../types/query.params\";\n\nexport abstract class Canister<T> {\n protected constructor(\n private readonly id: Principal,\n protected readonly service: T,\n protected readonly certifiedService: T,\n ) {}\n\n get canisterId(): Principal {\n return this.id;\n }\n\n protected caller = ({ certified = true }: QueryParams): T =>\n certified ? this.certifiedService : this.service;\n}\n", "import type { ActorConfig, ActorSubclass, Agent } from \"@dfinity/agent\";\nimport { Actor } from \"@dfinity/agent\";\nimport type { IDL } from \"@dfinity/candid\";\nimport type { Principal } from \"@dfinity/principal\";\nimport type { CanisterOptions } from \"../types/canister.options\";\nimport { defaultAgent } from \"./agent.utils\";\n\ntype RequiredCanisterOptions<T> = Required<\n Pick<CanisterOptions<T>, \"canisterId\">\n> &\n Omit<CanisterOptions<T>, \"canisterId\">;\n\nexport const createServices = <T>({\n options: {\n canisterId,\n serviceOverride,\n certifiedServiceOverride,\n agent: agentOption,\n callTransform,\n queryTransform,\n },\n idlFactory,\n certifiedIdlFactory,\n}: {\n options: RequiredCanisterOptions<T> &\n Pick<ActorConfig, \"queryTransform\" | \"callTransform\">;\n idlFactory: IDL.InterfaceFactory;\n certifiedIdlFactory: IDL.InterfaceFactory;\n}): {\n service: ActorSubclass<T>;\n certifiedService: ActorSubclass<T>;\n agent: Agent;\n canisterId: Principal;\n} => {\n const agent: Agent = agentOption ?? defaultAgent();\n\n const service: ActorSubclass<T> =\n serviceOverride ??\n Actor.createActor<T>(idlFactory, {\n agent,\n canisterId,\n callTransform,\n queryTransform,\n });\n\n const certifiedService: ActorSubclass<T> =\n certifiedServiceOverride ??\n Actor.createActor<T>(certifiedIdlFactory, {\n agent,\n canisterId,\n callTransform,\n queryTransform,\n });\n\n return { service, certifiedService, agent, canisterId };\n};\n", "import type { Agent, Identity } from \"@dfinity/agent\";\nimport { AnonymousIdentity, HttpAgent } from \"@dfinity/agent\";\n\n/**\n * Get a default agent that connects to mainnet with the anonymous identity.\n * @returns The default agent to use\n */\nexport const defaultAgent = (): Agent =>\n new HttpAgent({\n host: \"https://ic0.app\",\n identity: new AnonymousIdentity(),\n });\n\n/**\n * Create an agent for a given identity\n * @param identity A mandatory identity to use for the agent\n * @param host An optional host to connect to\n * @param fetchRootKey Fetch root key for certificate validation during local development or on testnet\n */\nexport const createAgent = async ({\n identity,\n host,\n fetchRootKey = false,\n}: {\n identity: Identity;\n host?: string;\n fetchRootKey?: boolean;\n}): Promise<HttpAgent> => {\n const agent: HttpAgent = new HttpAgent({\n identity,\n ...(host !== undefined && { host }),\n });\n\n if (fetchRootKey) {\n await agent.fetchRootKey();\n }\n\n return agent;\n};\n", "export class InvalidPercentageError extends Error {}\nexport class NullishError extends Error {}\n\nexport const assertNonNullish: <T>(\n value: T,\n message?: string,\n) => asserts value is NonNullable<T> = <T>(\n value: T,\n message?: string,\n): void => {\n if (value === null || value === undefined) {\n throw new NullishError(message);\n }\n};\nexport const assertPercentageNumber = (percentage: number) => {\n if (percentage < 0 || percentage > 100) {\n throw new InvalidPercentageError(\n `${percentage} is not a valid percentage number.`,\n );\n }\n};\n", "import { assertNonNullish } from \"./asserts.utils\";\n\nexport const uint8ArrayToBigInt = (array: Uint8Array): bigint => {\n const view = new DataView(array.buffer, array.byteOffset, array.byteLength);\n if (typeof view.getBigUint64 === \"function\") {\n return view.getBigUint64(0);\n } else {\n const high = BigInt(view.getUint32(0));\n const low = BigInt(view.getUint32(4));\n\n return (high << BigInt(32)) + low;\n }\n};\n\nexport const bigIntToUint8Array = (value: bigint): Uint8Array => {\n const buffer = new ArrayBuffer(8);\n const view = new DataView(buffer);\n if (typeof view.setBigUint64 === \"function\") {\n view.setBigUint64(0, value);\n } else {\n const high = Number(value >> BigInt(32));\n const low = Number(value & BigInt(0xffffffff));\n\n view.setUint32(0, high);\n view.setUint32(4, low);\n }\n\n return new Uint8Array(buffer);\n};\n\nexport const numberToUint8Array = (value: number): Uint8Array => {\n const view = new DataView(new ArrayBuffer(8));\n for (let index = 7; index >= 0; --index) {\n view.setUint8(index, value % 256);\n value = value >> 8;\n }\n return new Uint8Array(view.buffer);\n};\n\nexport const arrayBufferToUint8Array = (buffer: ArrayBuffer): Uint8Array =>\n new Uint8Array(buffer);\n\nexport const uint8ArrayToArrayOfNumber = (array: Uint8Array): Array<number> =>\n Array.from(array);\n\nexport const arrayOfNumberToUint8Array = (numbers: Array<number>): Uint8Array =>\n new Uint8Array(numbers);\n\nexport const asciiStringToByteArray = (text: string): Array<number> =>\n Array.from(text).map((c) => c.charCodeAt(0));\n\nexport const hexStringToUint8Array = (hexString: string): Uint8Array => {\n const matches = hexString.match(/.{1,2}/g);\n\n assertNonNullish(matches, \"Invalid hex string.\");\n\n return Uint8Array.from(matches.map((byte) => parseInt(byte, 16)));\n};\n\nexport const uint8ArrayToHexString = (bytes: Uint8Array) =>\n bytes.reduce((str, byte) => str + byte.toString(16).padStart(2, \"0\"), \"\");\n", "import { assertNonNullish } from \"./asserts.utils\";\n\nconst ALPHABET = \"abcdefghijklmnopqrstuvwxyz234567\";\n\n// Build a lookup table for decoding.\nconst LOOKUP_TABLE: Record<string, number> = Object.create(null);\nfor (let i = 0; i < ALPHABET.length; i++) {\n LOOKUP_TABLE[ALPHABET[i]] = i;\n}\n\n// Add aliases for rfc4648.\nLOOKUP_TABLE[\"0\"] = LOOKUP_TABLE.o;\nLOOKUP_TABLE[\"1\"] = LOOKUP_TABLE.i;\n\n/**\n * Encode an Uint8Array to a base32 string.\n *\n * @param input The input array to encode.\n * @returns A Base32 string encoding the input.\n */\nexport const encodeBase32 = (input: Uint8Array): string => {\n // How many bits will we skip from the first byte.\n let skip = 0;\n // 5 high bits, carry from one byte to the next.\n let bits = 0;\n\n // The output string in base32.\n let output = \"\";\n\n function encodeByte(byte: number): number {\n if (skip < 0) {\n // we have a carry from the previous byte\n bits |= byte >> -skip;\n } else {\n // no carry\n bits = (byte << skip) & 248;\n }\n\n if (skip > 3) {\n // Not enough data to produce a character, get us another one\n skip -= 8;\n return 1;\n }\n\n if (skip < 4) {\n // produce a character\n output += ALPHABET[bits >> 3];\n skip += 5;\n }\n\n return 0;\n }\n\n for (let i = 0; i < input.length; ) {\n i += encodeByte(input[i]);\n }\n\n return output + (skip < 0 ? ALPHABET[bits >> 3] : \"\");\n};\n\n/**\n * Decode a base32 string to Uint8Array.\n *\n * @param input The input string to decode.\n * @param input The base32 encoded string to decode.\n */\nexport function decodeBase32(input: string): Uint8Array {\n // how many bits we have from the previous character.\n let skip = 0;\n // current byte we're producing.\n let byte = 0;\n\n const output = new Uint8Array(((input.length * 4) / 3) | 0);\n let o = 0;\n\n function decodeChar(char: string) {\n // Consume a character from the stream, store\n // the output in this.output. As before, better\n // to use update().\n let val = LOOKUP_TABLE[char.toLowerCase()];\n assertNonNullish(val, `Invalid character: ${JSON.stringify(char)}`);\n\n // move to the high bits\n val <<= 3;\n byte |= val >>> skip;\n skip += 5;\n\n if (skip >= 8) {\n // We have enough bytes to produce an output\n output[o++] = byte;\n skip -= 8;\n\n if (skip > 0) {\n byte = (val << (5 - skip)) & 255;\n } else {\n byte = 0;\n }\n }\n }\n\n for (const c of input) {\n decodeChar(c);\n }\n\n return output.slice(0, o);\n}\n", "// This file is translated to JavaScript from\n// https://lxp32.github.io/docs/a-simple-example-crc32-calculation/\nconst lookUpTable: Uint32Array = new Uint32Array([\n 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f,\n 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988,\n 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, 0x1db71064, 0x6ab020f2,\n 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,\n 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9,\n 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172,\n 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 0x35b5a8fa, 0x42b2986c,\n 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,\n 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423,\n 0xcfba9599, 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924,\n 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, 0x01db7106,\n 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,\n 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d,\n 0x91646c97, 0xe6635c01, 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e,\n 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950,\n 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,\n 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7,\n 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0,\n 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa,\n 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,\n 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81,\n 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a,\n 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 0xe3630b12, 0x94643b84,\n 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,\n 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb,\n 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc,\n 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 0xd6d6a3e8, 0xa1d1937e,\n 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,\n 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55,\n 0x316e8eef, 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236,\n 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, 0xb2bd0b28,\n 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,\n 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f,\n 0x72076785, 0x05005713, 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38,\n 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242,\n 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,\n 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69,\n 0x616bffd3, 0x166ccf45, 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2,\n 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc,\n 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,\n 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693,\n 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94,\n 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d,\n]);\n\nconst crc32 = (bytes: Uint8Array): number => {\n let crc = -1;\n\n for (let i = 0; i < bytes.length; i++) {\n const byte = bytes[i];\n const t = (byte ^ crc) & 0xff;\n crc = lookUpTable[t] ^ (crc >>> 8);\n }\n\n return (crc ^ -1) >>> 0;\n};\n\nexport const bigEndianCrc32 = (bytes: Uint8Array): Uint8Array => {\n const checksumArrayBuf = new ArrayBuffer(4);\n const view = new DataView(checksumArrayBuf);\n view.setUint32(0, crc32(bytes), false);\n return new Uint8Array(checksumArrayBuf);\n};\n", "/* eslint-disable-next-line @typescript-eslint/ban-types */\nexport const debounce = (func: Function, timeout?: number) => {\n let timer: NodeJS.Timer | undefined;\n\n return (...args: unknown[]) => {\n const next = () => func(...args);\n\n if (timer) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore TypeScript global and window confusion even if we are using @types/node\n clearTimeout(timer);\n }\n\n timer = setTimeout(\n next,\n timeout !== undefined && timeout > 0 ? timeout : 300,\n );\n };\n};\n", "/** Is null or undefined */\nexport const isNullish = <T>(\n argument: T | undefined | null,\n): argument is undefined | null => argument === null || argument === undefined;\n\n/** Not null and not undefined */\nexport const nonNullish = <T>(\n argument: T | undefined | null,\n): argument is NonNullable<T> => !isNullish(argument);\n\n/** Not null and not undefined and not empty */\nexport const notEmptyString = (value: string | undefined | null): boolean =>\n nonNullish(value) && value !== \"\";\n", "import { assertNonNullish } from \"./asserts.utils\";\nimport { nonNullish } from \"./nullish.utils\";\n\nexport const toNullable = <T>(value?: T | null): [] | [T] => {\n return nonNullish(value) ? [value] : [];\n};\n\nexport const fromNullable = <T>(value: [] | [T]): T | undefined => {\n return value?.[0];\n};\n\nexport const fromDefinedNullable = <T>(value: [] | [T]): T => {\n const result = fromNullable(value);\n\n assertNonNullish(result);\n\n return result;\n};\n", "import { Principal } from \"@dfinity/principal\";\nimport { nonNullish } from \"./nullish.utils\";\n\nconst JSON_KEY_BIGINT = \"__bigint__\";\nconst JSON_KEY_PRINCIPAL = \"__principal__\";\nconst JSON_KEY_UINT8ARRAY = \"__uint8array__\";\n\n/**\n * A parser that interprets revived BigInt, Principal, and Uint8Array when constructing JavaScript values or objects.\n */\nexport const jsonReplacer = (_key: string, value: unknown): unknown => {\n if (typeof value === \"bigint\") {\n return { [JSON_KEY_BIGINT]: `${value}` };\n }\n\n if (nonNullish(value) && value instanceof Principal) {\n return { [JSON_KEY_PRINCIPAL]: value.toText() };\n }\n\n if (nonNullish(value) && value instanceof Uint8Array) {\n return { [JSON_KEY_UINT8ARRAY]: Array.from(value) };\n }\n\n return value;\n};\n\n/**\n * A function that alters the behavior of the stringification process for BigInt, Principal and Uint8Array.\n */\nexport const jsonReviver = (_key: string, value: unknown): unknown => {\n const mapValue = <T>(key: string): T => (value as Record<string, T>)[key];\n\n if (\n nonNullish(value) &&\n typeof value === \"object\" &&\n JSON_KEY_BIGINT in value\n ) {\n return BigInt(mapValue(JSON_KEY_BIGINT));\n }\n\n if (\n nonNullish(value) &&\n typeof value === \"object\" &&\n JSON_KEY_PRINCIPAL in value\n ) {\n return Principal.fromText(mapValue(JSON_KEY_PRINCIPAL));\n }\n\n if (\n nonNullish(value) &&\n typeof value === \"object\" &&\n JSON_KEY_UINT8ARRAY in value\n ) {\n return Uint8Array.from(mapValue(JSON_KEY_UINT8ARRAY));\n }\n\n return value;\n};\n", "import type { Principal } from \"@dfinity/principal\";\n\n/**\n * Convert a principal to a Uint8Array 32 length.\n * e.g. Useful to convert a canister ID when topping up cycles with the Cmc canister\n * @param principal The principal that needs to be converted to Subaccount\n */\nexport const principalToSubAccount = (principal: Principal): Uint8Array => {\n const bytes: Uint8Array = principal.toUint8Array();\n const subAccount: Uint8Array = new Uint8Array(32);\n subAccount[0] = bytes.length;\n subAccount.set(bytes, 1);\n return subAccount;\n};\n", "const AMOUNT_VERSION_PARTS = 3;\nconst addZeros = (nums: number[], amountZeros: number): number[] =>\n amountZeros > nums.length\n ? [...nums, ...[...Array(amountZeros - nums.length).keys()].map(() => 0)]\n : nums;\n\nconst convertToNumber = (versionStringPart: string): number => {\n if (!Number.isNaN(Number(versionStringPart))) {\n return Number(versionStringPart);\n }\n const strippedVersion = versionStringPart.split(\"\").reduce((acc, char) => {\n if (Number.isNaN(Number(char))) {\n return acc;\n }\n return acc + char;\n }, \"\");\n return Number(strippedVersion);\n};\n/**\n * Returns true if the current version is smaller than the minVersion, false if equal or bigger.\n * Tags after patch version are ignored, e.g. 1.0.0-beta.1 is considered equal to 1.0.0.\n *\n * @param {Object} params\n * @param {string} params.minVersion Ex: \"1.0.0\"\n * @param {string} params.currentVersion Ex: \"2.0.0\"\n * @returns boolean\n */\nexport const smallerVersion = ({\n minVersion,\n currentVersion,\n}: {\n minVersion: string;\n currentVersion: string;\n}): boolean => {\n const minVersionStandarized = addZeros(\n minVersion.split(\".\").map(convertToNumber),\n AMOUNT_VERSION_PARTS,\n ).join(\".\");\n const currentVersionStandarized = addZeros(\n currentVersion.split(\".\").map(convertToNumber),\n AMOUNT_VERSION_PARTS,\n ).join(\".\");\n // Versions need to have the same number of parts to be comparable\n // Source: https://stackoverflow.com/a/65687141\n return (\n currentVersionStandarized.localeCompare(minVersionStandarized, undefined, {\n numeric: true,\n sensitivity: \"base\",\n }) < 0\n );\n};\n"],
5
- "mappings": "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",
6
- "names": ["FromStringToTokenError", "E8S_PER_TOKEN", "convertStringToE8s", "value", "amount", "regexMatch", "integral", "fractional", "e8s", "E8S_PER_TOKEN", "ICPToken", "TokenAmount", "_TokenAmount", "token", "tokenAmount", "Canister", "id", "service", "certifiedService", "certified", "Actor", "AnonymousIdentity", "HttpAgent", "defaultAgent", "createAgent", "identity", "host", "fetchRootKey", "agent", "createServices", "canisterId", "serviceOverride", "certifiedServiceOverride", "agentOption", "callTransform", "queryTransform", "idlFactory", "certifiedIdlFactory", "agent", "defaultAgent", "service", "Actor", "certifiedService", "InvalidPercentageError", "NullishError", "assertNonNullish", "value", "message", "assertPercentageNumber", "percentage", "uint8ArrayToBigInt", "array", "view", "high", "low", "bigIntToUint8Array", "value", "buffer", "numberToUint8Array", "index", "arrayBufferToUint8Array", "uint8ArrayToArrayOfNumber", "arrayOfNumberToUint8Array", "numbers", "asciiStringToByteArray", "text", "c", "hexStringToUint8Array", "hexString", "matches", "assertNonNullish", "byte", "uint8ArrayToHexString", "bytes", "str", "ALPHABET", "LOOKUP_TABLE", "i", "encodeBase32", "input", "skip", "bits", "output", "encodeByte", "byte", "decodeBase32", "decodeChar", "char", "val", "assertNonNullish", "c", "lookUpTable", "crc32", "bytes", "crc", "i", "t", "bigEndianCrc32", "checksumArrayBuf", "debounce", "func", "timeout", "timer", "args", "next", "isNullish", "argument", "nonNullish", "notEmptyString", "value", "toNullable", "value", "nonNullish", "fromNullable", "fromDefinedNullable", "result", "assertNonNullish", "Principal", "JSON_KEY_BIGINT", "JSON_KEY_PRINCIPAL", "JSON_KEY_UINT8ARRAY", "jsonReplacer", "_key", "value", "nonNullish", "Principal", "jsonReviver", "mapValue", "key", "principalToSubAccount", "principal", "bytes", "subAccount", "addZeros", "nums", "amountZeros", "convertToNumber", "versionStringPart", "strippedVersion", "acc", "char", "smallerVersion", "minVersion", "currentVersion", "minVersionStandarized"]
3
+ "sources": ["../../src/enums/token.enums.ts", "../../src/constants/constants.ts", "../../src/parser/token.ts", "../../src/services/canister.ts", "../../src/utils/actor.utils.ts", "../../src/utils/agent.utils.ts", "../../src/utils/asserts.utils.ts", "../../src/utils/arrays.utils.ts", "../../src/utils/base32.utils.ts", "../../src/utils/crc.utils.ts", "../../src/utils/date.utils.ts", "../../src/utils/debounce.utils.ts", "../../src/utils/nullish.utils.ts", "../../src/utils/did.utils.ts", "../../src/utils/json.utils.ts", "../../src/utils/principal.utils.ts", "../../src/utils/version.utils.ts"],
4
+ "sourcesContent": ["export enum FromStringToTokenError {\n FractionalMoreThan8Decimals,\n InvalidFormat,\n}\n", "export const E8S_PER_TOKEN = BigInt(100000000);\n", "import { E8S_PER_TOKEN } from \"../constants/constants\";\nimport { FromStringToTokenError } from \"../enums/token.enums\";\n\n/**\n * Receives a string representing a number and returns the big int or error.\n *\n * @param amount - in string format\n * @returns bigint | FromStringToTokenError\n */\nexport const convertStringToE8s = (\n value: string,\n): bigint | FromStringToTokenError => {\n // replace exponential format (1e-4) with plain (0.0001)\n // doesn't support decimals for values >= ~1e16\n let amount = value.includes(\"e\")\n ? Number(value).toLocaleString(\"en\", {\n useGrouping: false,\n maximumFractionDigits: 20,\n })\n : value;\n\n // Remove all instances of \",\" and \"'\".\n amount = amount.trim().replace(/[,']/g, \"\");\n\n // Verify that the string is of the format 1234.5678\n const regexMatch = amount.match(/\\d*(\\.\\d*)?/);\n if (!regexMatch || regexMatch[0] !== amount) {\n return FromStringToTokenError.InvalidFormat;\n }\n\n const [integral, fractional] = amount.split(\".\");\n\n let e8s = BigInt(0);\n\n if (integral) {\n try {\n e8s += BigInt(integral) * E8S_PER_TOKEN;\n } catch {\n return FromStringToTokenError.InvalidFormat;\n }\n }\n\n if (fractional) {\n if (fractional.length > 8) {\n return FromStringToTokenError.FractionalMoreThan8Decimals;\n }\n try {\n e8s += BigInt(fractional.padEnd(8, \"0\"));\n } catch {\n return FromStringToTokenError.InvalidFormat;\n }\n }\n\n return e8s;\n};\n\nexport interface Token {\n symbol: string;\n name: string;\n}\n\nexport const ICPToken: Token = {\n symbol: \"ICP\",\n name: \"Internet Computer\",\n};\n\n/**\n * Represents an amount of tokens.\n *\n * @param e8s - The amount of tokens in bigint.\n * @param token - The token type.\n */\nexport class TokenAmount {\n private constructor(\n protected e8s: bigint,\n public token: Token,\n ) {}\n\n /**\n * Initialize from a bigint. Bigint are considered e8s.\n *\n * @param {amount: bigint; token?: Token;} params\n * @param {bigint} params.amount The amount in bigint format.\n * @param {Token} params.token The token type.\n */\n public static fromE8s({\n amount,\n token,\n }: {\n amount: bigint;\n token: Token;\n }): TokenAmount {\n return new TokenAmount(amount, token);\n }\n\n /**\n * Initialize from a string. Accepted formats:\n *\n * 1234567.8901\n * 1'234'567.8901\n * 1,234,567.8901\n *\n * @param {amount: string; token?: Token;} params\n * @param {string} params.amount The amount in string format.\n * @param {Token} params.token The token type.\n */\n public static fromString({\n amount,\n token,\n }: {\n amount: string;\n token: Token;\n }): TokenAmount | FromStringToTokenError {\n const e8s = convertStringToE8s(amount);\n\n if (typeof e8s === \"bigint\") {\n return new TokenAmount(e8s, token);\n }\n return e8s;\n }\n\n /**\n * Initialize from a number.\n *\n * 1 integer is considered E8S_PER_TOKEN\n *\n * @param {amount: number; token?: Token;} params\n * @param {string} params.amount The amount in number format.\n * @param {Token} params.token The token type.\n */\n public static fromNumber({\n amount,\n token,\n }: {\n amount: number;\n token: Token;\n }): TokenAmount {\n const tokenAmount = TokenAmount.fromString({\n amount: amount.toString(),\n token,\n });\n if (tokenAmount instanceof TokenAmount) {\n return tokenAmount;\n }\n if (tokenAmount === FromStringToTokenError.FractionalMoreThan8Decimals) {\n throw new Error(`Number ${amount} has more than 8 decimals`);\n }\n\n // This should never happen\n throw new Error(`Invalid number ${amount}`);\n }\n\n /**\n *\n * @returns The amount of e8s.\n */\n public toE8s(): bigint {\n return this.e8s;\n }\n}\n", "import type { Principal } from \"@dfinity/principal\";\nimport type { QueryParams } from \"../types/query.params\";\n\nexport abstract class Canister<T> {\n protected constructor(\n private readonly id: Principal,\n protected readonly service: T,\n protected readonly certifiedService: T,\n ) {}\n\n get canisterId(): Principal {\n return this.id;\n }\n\n protected caller = ({ certified = true }: QueryParams): T =>\n certified ? this.certifiedService : this.service;\n}\n", "import type { ActorConfig, ActorSubclass, Agent } from \"@dfinity/agent\";\nimport { Actor } from \"@dfinity/agent\";\nimport type { IDL } from \"@dfinity/candid\";\nimport type { Principal } from \"@dfinity/principal\";\nimport type { CanisterOptions } from \"../types/canister.options\";\nimport { defaultAgent } from \"./agent.utils\";\n\ntype RequiredCanisterOptions<T> = Required<\n Pick<CanisterOptions<T>, \"canisterId\">\n> &\n Omit<CanisterOptions<T>, \"canisterId\">;\n\nexport const createServices = <T>({\n options: {\n canisterId,\n serviceOverride,\n certifiedServiceOverride,\n agent: agentOption,\n callTransform,\n queryTransform,\n },\n idlFactory,\n certifiedIdlFactory,\n}: {\n options: RequiredCanisterOptions<T> &\n Pick<ActorConfig, \"queryTransform\" | \"callTransform\">;\n idlFactory: IDL.InterfaceFactory;\n certifiedIdlFactory: IDL.InterfaceFactory;\n}): {\n service: ActorSubclass<T>;\n certifiedService: ActorSubclass<T>;\n agent: Agent;\n canisterId: Principal;\n} => {\n const agent: Agent = agentOption ?? defaultAgent();\n\n const service: ActorSubclass<T> =\n serviceOverride ??\n Actor.createActor<T>(idlFactory, {\n agent,\n canisterId,\n callTransform,\n queryTransform,\n });\n\n const certifiedService: ActorSubclass<T> =\n certifiedServiceOverride ??\n Actor.createActor<T>(certifiedIdlFactory, {\n agent,\n canisterId,\n callTransform,\n queryTransform,\n });\n\n return { service, certifiedService, agent, canisterId };\n};\n", "import type { Agent, Identity } from \"@dfinity/agent\";\nimport { AnonymousIdentity, HttpAgent } from \"@dfinity/agent\";\n\n/**\n * Get a default agent that connects to mainnet with the anonymous identity.\n * @returns The default agent to use\n */\nexport const defaultAgent = (): Agent =>\n new HttpAgent({\n host: \"https://ic0.app\",\n identity: new AnonymousIdentity(),\n });\n\n/**\n * Create an agent for a given identity\n * @param identity A mandatory identity to use for the agent\n * @param host An optional host to connect to\n * @param fetchRootKey Fetch root key for certificate validation during local development or on testnet\n */\nexport const createAgent = async ({\n identity,\n host,\n fetchRootKey = false,\n}: {\n identity: Identity;\n host?: string;\n fetchRootKey?: boolean;\n}): Promise<HttpAgent> => {\n const agent: HttpAgent = new HttpAgent({\n identity,\n ...(host !== undefined && { host }),\n });\n\n if (fetchRootKey) {\n await agent.fetchRootKey();\n }\n\n return agent;\n};\n", "export class InvalidPercentageError extends Error {}\nexport class NullishError extends Error {}\n\nexport const assertNonNullish: <T>(\n value: T,\n message?: string,\n) => asserts value is NonNullable<T> = <T>(\n value: T,\n message?: string,\n): void => {\n if (value === null || value === undefined) {\n throw new NullishError(message);\n }\n};\nexport const assertPercentageNumber = (percentage: number) => {\n if (percentage < 0 || percentage > 100) {\n throw new InvalidPercentageError(\n `${percentage} is not a valid percentage number.`,\n );\n }\n};\n", "import { assertNonNullish } from \"./asserts.utils\";\n\nexport const uint8ArrayToBigInt = (array: Uint8Array): bigint => {\n const view = new DataView(array.buffer, array.byteOffset, array.byteLength);\n if (typeof view.getBigUint64 === \"function\") {\n return view.getBigUint64(0);\n } else {\n const high = BigInt(view.getUint32(0));\n const low = BigInt(view.getUint32(4));\n\n return (high << BigInt(32)) + low;\n }\n};\n\nexport const bigIntToUint8Array = (value: bigint): Uint8Array => {\n const buffer = new ArrayBuffer(8);\n const view = new DataView(buffer);\n if (typeof view.setBigUint64 === \"function\") {\n view.setBigUint64(0, value);\n } else {\n const high = Number(value >> BigInt(32));\n const low = Number(value & BigInt(0xffffffff));\n\n view.setUint32(0, high);\n view.setUint32(4, low);\n }\n\n return new Uint8Array(buffer);\n};\n\nexport const numberToUint8Array = (value: number): Uint8Array => {\n const view = new DataView(new ArrayBuffer(8));\n for (let index = 7; index >= 0; --index) {\n view.setUint8(index, value % 256);\n value = value >> 8;\n }\n return new Uint8Array(view.buffer);\n};\n\nexport const arrayBufferToUint8Array = (buffer: ArrayBuffer): Uint8Array =>\n new Uint8Array(buffer);\n\nexport const uint8ArrayToArrayOfNumber = (array: Uint8Array): Array<number> =>\n Array.from(array);\n\nexport const arrayOfNumberToUint8Array = (numbers: Array<number>): Uint8Array =>\n new Uint8Array(numbers);\n\nexport const asciiStringToByteArray = (text: string): Array<number> =>\n Array.from(text).map((c) => c.charCodeAt(0));\n\nexport const hexStringToUint8Array = (hexString: string): Uint8Array => {\n const matches = hexString.match(/.{1,2}/g);\n\n assertNonNullish(matches, \"Invalid hex string.\");\n\n return Uint8Array.from(matches.map((byte) => parseInt(byte, 16)));\n};\n\nexport const uint8ArrayToHexString = (bytes: Uint8Array) =>\n bytes.reduce((str, byte) => str + byte.toString(16).padStart(2, \"0\"), \"\");\n", "import { assertNonNullish } from \"./asserts.utils\";\n\nconst ALPHABET = \"abcdefghijklmnopqrstuvwxyz234567\";\n\n// Build a lookup table for decoding.\nconst LOOKUP_TABLE: Record<string, number> = Object.create(null);\nfor (let i = 0; i < ALPHABET.length; i++) {\n LOOKUP_TABLE[ALPHABET[i]] = i;\n}\n\n// Add aliases for rfc4648.\nLOOKUP_TABLE[\"0\"] = LOOKUP_TABLE.o;\nLOOKUP_TABLE[\"1\"] = LOOKUP_TABLE.i;\n\n/**\n * Encode an Uint8Array to a base32 string.\n *\n * @param input The input array to encode.\n * @returns A Base32 string encoding the input.\n */\nexport const encodeBase32 = (input: Uint8Array): string => {\n // How many bits will we skip from the first byte.\n let skip = 0;\n // 5 high bits, carry from one byte to the next.\n let bits = 0;\n\n // The output string in base32.\n let output = \"\";\n\n function encodeByte(byte: number): number {\n if (skip < 0) {\n // we have a carry from the previous byte\n bits |= byte >> -skip;\n } else {\n // no carry\n bits = (byte << skip) & 248;\n }\n\n if (skip > 3) {\n // Not enough data to produce a character, get us another one\n skip -= 8;\n return 1;\n }\n\n if (skip < 4) {\n // produce a character\n output += ALPHABET[bits >> 3];\n skip += 5;\n }\n\n return 0;\n }\n\n for (let i = 0; i < input.length; ) {\n i += encodeByte(input[i]);\n }\n\n return output + (skip < 0 ? ALPHABET[bits >> 3] : \"\");\n};\n\n/**\n * Decode a base32 string to Uint8Array.\n *\n * @param input The input string to decode.\n * @param input The base32 encoded string to decode.\n */\nexport function decodeBase32(input: string): Uint8Array {\n // how many bits we have from the previous character.\n let skip = 0;\n // current byte we're producing.\n let byte = 0;\n\n const output = new Uint8Array(((input.length * 4) / 3) | 0);\n let o = 0;\n\n function decodeChar(char: string) {\n // Consume a character from the stream, store\n // the output in this.output. As before, better\n // to use update().\n let val = LOOKUP_TABLE[char.toLowerCase()];\n assertNonNullish(val, `Invalid character: ${JSON.stringify(char)}`);\n\n // move to the high bits\n val <<= 3;\n byte |= val >>> skip;\n skip += 5;\n\n if (skip >= 8) {\n // We have enough bytes to produce an output\n output[o++] = byte;\n skip -= 8;\n\n if (skip > 0) {\n byte = (val << (5 - skip)) & 255;\n } else {\n byte = 0;\n }\n }\n }\n\n for (const c of input) {\n decodeChar(c);\n }\n\n return output.slice(0, o);\n}\n", "// This file is translated to JavaScript from\n// https://lxp32.github.io/docs/a-simple-example-crc32-calculation/\nconst lookUpTable: Uint32Array = new Uint32Array([\n 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f,\n 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988,\n 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, 0x1db71064, 0x6ab020f2,\n 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,\n 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9,\n 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172,\n 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 0x35b5a8fa, 0x42b2986c,\n 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,\n 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423,\n 0xcfba9599, 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924,\n 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, 0x01db7106,\n 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,\n 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d,\n 0x91646c97, 0xe6635c01, 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e,\n 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950,\n 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,\n 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7,\n 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0,\n 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa,\n 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,\n 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81,\n 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a,\n 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 0xe3630b12, 0x94643b84,\n 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,\n 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb,\n 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc,\n 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 0xd6d6a3e8, 0xa1d1937e,\n 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,\n 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55,\n 0x316e8eef, 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236,\n 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, 0xb2bd0b28,\n 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,\n 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f,\n 0x72076785, 0x05005713, 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38,\n 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242,\n 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,\n 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69,\n 0x616bffd3, 0x166ccf45, 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2,\n 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc,\n 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,\n 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693,\n 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94,\n 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d,\n]);\n\nconst crc32 = (bytes: Uint8Array): number => {\n let crc = -1;\n\n for (let i = 0; i < bytes.length; i++) {\n const byte = bytes[i];\n const t = (byte ^ crc) & 0xff;\n crc = lookUpTable[t] ^ (crc >>> 8);\n }\n\n return (crc ^ -1) >>> 0;\n};\n\nexport const bigEndianCrc32 = (bytes: Uint8Array): Uint8Array => {\n const checksumArrayBuf = new ArrayBuffer(4);\n const view = new DataView(checksumArrayBuf);\n view.setUint32(0, crc32(bytes), false);\n return new Uint8Array(checksumArrayBuf);\n};\n", "const SECONDS_IN_MINUTE = 60;\nconst MINUTES_IN_HOUR = 60;\nconst HOURS_IN_DAY = 24;\nconst DAYS_IN_NON_LEAP_YEAR = 365;\n\nexport interface I18nSecondsToDuration {\n year: string;\n year_plural: string;\n month: string;\n month_plural: string;\n day: string;\n day_plural: string;\n hour: string;\n hour_plural: string;\n minute: string;\n minute_plural: string;\n second: string;\n second_plural: string;\n}\n\nconst EN_TIME: I18nSecondsToDuration = {\n year: \"year\",\n year_plural: \"years\",\n month: \"month\",\n month_plural: \"months\",\n day: \"day\",\n day_plural: \"days\",\n hour: \"hour\",\n hour_plural: \"hours\",\n minute: \"minute\",\n minute_plural: \"minutes\",\n second: \"second\",\n second_plural: \"seconds\",\n};\n\n/**\n * Convert seconds to a human-readable duration, such as \"6 days, 10 hours.\"\n * @param {Object} options - The options object.\n * @param {bigint} options.seconds - The number of seconds to convert.\n * @param {I18nSecondsToDuration} [options.i18n] - The i18n object for customizing language and units. Defaults to English.\n * @returns {string} The human-readable duration string.\n */\nexport const secondsToDuration = ({\n seconds,\n i18n = EN_TIME,\n}: {\n seconds: bigint;\n i18n?: I18nSecondsToDuration;\n}): string => {\n let minutes = seconds / BigInt(SECONDS_IN_MINUTE);\n\n let hours = minutes / BigInt(MINUTES_IN_HOUR);\n minutes -= hours * BigInt(MINUTES_IN_HOUR);\n\n let days = hours / BigInt(HOURS_IN_DAY);\n hours -= days * BigInt(HOURS_IN_DAY);\n\n const years = fullYearsInDays(days);\n days -= daysInYears(years);\n\n const periods = [\n createLabel(\"year\", years),\n createLabel(\"day\", days),\n createLabel(\"hour\", hours),\n createLabel(\"minute\", minutes),\n ...(seconds > BigInt(0) && seconds < BigInt(60)\n ? [createLabel(\"second\", seconds)]\n : []),\n ];\n\n return periods\n .filter(({ amount }) => amount > 0)\n .slice(0, 2)\n .map(\n (labelInfo) =>\n `${labelInfo.amount} ${\n labelInfo.amount === 1\n ? i18n[labelInfo.labelKey]\n : i18n[`${labelInfo.labelKey}_plural`]\n }`,\n )\n .join(\", \");\n};\n\nconst fullYearsInDays = (days: bigint): bigint => {\n // Use integer division.\n let years = days / BigInt(DAYS_IN_NON_LEAP_YEAR);\n while (daysInYears(years) > days) {\n years--;\n }\n return years;\n};\n\nconst daysInYears = (years: bigint): bigint => {\n // Use integer division.\n const leapDays = years / BigInt(4);\n return years * BigInt(DAYS_IN_NON_LEAP_YEAR) + leapDays;\n};\n\ntype LabelKey = \"year\" | \"month\" | \"day\" | \"hour\" | \"minute\" | \"second\";\ntype LabelInfo = {\n labelKey: LabelKey;\n amount: number;\n};\nconst createLabel = (labelKey: LabelKey, amount: bigint): LabelInfo => ({\n labelKey,\n amount: Number(amount),\n});\n", "/* eslint-disable-next-line @typescript-eslint/ban-types */\nexport const debounce = (func: Function, timeout?: number) => {\n let timer: NodeJS.Timer | undefined;\n\n return (...args: unknown[]) => {\n const next = () => func(...args);\n\n if (timer) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore TypeScript global and window confusion even if we are using @types/node\n clearTimeout(timer);\n }\n\n timer = setTimeout(\n next,\n timeout !== undefined && timeout > 0 ? timeout : 300,\n );\n };\n};\n", "/** Is null or undefined */\nexport const isNullish = <T>(\n argument: T | undefined | null,\n): argument is undefined | null => argument === null || argument === undefined;\n\n/** Not null and not undefined */\nexport const nonNullish = <T>(\n argument: T | undefined | null,\n): argument is NonNullable<T> => !isNullish(argument);\n\n/** Not null and not undefined and not empty */\nexport const notEmptyString = (value: string | undefined | null): boolean =>\n nonNullish(value) && value !== \"\";\n", "import { assertNonNullish } from \"./asserts.utils\";\nimport { nonNullish } from \"./nullish.utils\";\n\nexport const toNullable = <T>(value?: T | null): [] | [T] => {\n return nonNullish(value) ? [value] : [];\n};\n\nexport const fromNullable = <T>(value: [] | [T]): T | undefined => {\n return value?.[0];\n};\n\nexport const fromDefinedNullable = <T>(value: [] | [T]): T => {\n const result = fromNullable(value);\n\n assertNonNullish(result);\n\n return result;\n};\n", "import { Principal } from \"@dfinity/principal\";\nimport { nonNullish } from \"./nullish.utils\";\n\nconst JSON_KEY_BIGINT = \"__bigint__\";\nconst JSON_KEY_PRINCIPAL = \"__principal__\";\nconst JSON_KEY_UINT8ARRAY = \"__uint8array__\";\n\n/**\n * A parser that interprets revived BigInt, Principal, and Uint8Array when constructing JavaScript values or objects.\n */\nexport const jsonReplacer = (_key: string, value: unknown): unknown => {\n if (typeof value === \"bigint\") {\n return { [JSON_KEY_BIGINT]: `${value}` };\n }\n\n if (nonNullish(value) && value instanceof Principal) {\n return { [JSON_KEY_PRINCIPAL]: value.toText() };\n }\n\n if (nonNullish(value) && value instanceof Uint8Array) {\n return { [JSON_KEY_UINT8ARRAY]: Array.from(value) };\n }\n\n return value;\n};\n\n/**\n * A function that alters the behavior of the stringification process for BigInt, Principal and Uint8Array.\n */\nexport const jsonReviver = (_key: string, value: unknown): unknown => {\n const mapValue = <T>(key: string): T => (value as Record<string, T>)[key];\n\n if (\n nonNullish(value) &&\n typeof value === \"object\" &&\n JSON_KEY_BIGINT in value\n ) {\n return BigInt(mapValue(JSON_KEY_BIGINT));\n }\n\n if (\n nonNullish(value) &&\n typeof value === \"object\" &&\n JSON_KEY_PRINCIPAL in value\n ) {\n return Principal.fromText(mapValue(JSON_KEY_PRINCIPAL));\n }\n\n if (\n nonNullish(value) &&\n typeof value === \"object\" &&\n JSON_KEY_UINT8ARRAY in value\n ) {\n return Uint8Array.from(mapValue(JSON_KEY_UINT8ARRAY));\n }\n\n return value;\n};\n", "import type { Principal } from \"@dfinity/principal\";\n\n/**\n * Convert a principal to a Uint8Array 32 length.\n * e.g. Useful to convert a canister ID when topping up cycles with the Cmc canister\n * @param principal The principal that needs to be converted to Subaccount\n */\nexport const principalToSubAccount = (principal: Principal): Uint8Array => {\n const bytes: Uint8Array = principal.toUint8Array();\n const subAccount: Uint8Array = new Uint8Array(32);\n subAccount[0] = bytes.length;\n subAccount.set(bytes, 1);\n return subAccount;\n};\n", "const AMOUNT_VERSION_PARTS = 3;\nconst addZeros = (nums: number[], amountZeros: number): number[] =>\n amountZeros > nums.length\n ? [...nums, ...[...Array(amountZeros - nums.length).keys()].map(() => 0)]\n : nums;\n\nconst convertToNumber = (versionStringPart: string): number => {\n if (!Number.isNaN(Number(versionStringPart))) {\n return Number(versionStringPart);\n }\n const strippedVersion = versionStringPart.split(\"\").reduce((acc, char) => {\n if (Number.isNaN(Number(char))) {\n return acc;\n }\n return acc + char;\n }, \"\");\n return Number(strippedVersion);\n};\n/**\n * Returns true if the current version is smaller than the minVersion, false if equal or bigger.\n * Tags after patch version are ignored, e.g. 1.0.0-beta.1 is considered equal to 1.0.0.\n *\n * @param {Object} params\n * @param {string} params.minVersion Ex: \"1.0.0\"\n * @param {string} params.currentVersion Ex: \"2.0.0\"\n * @returns boolean\n */\nexport const smallerVersion = ({\n minVersion,\n currentVersion,\n}: {\n minVersion: string;\n currentVersion: string;\n}): boolean => {\n const minVersionStandarized = addZeros(\n minVersion.split(\".\").map(convertToNumber),\n AMOUNT_VERSION_PARTS,\n ).join(\".\");\n const currentVersionStandarized = addZeros(\n currentVersion.split(\".\").map(convertToNumber),\n AMOUNT_VERSION_PARTS,\n ).join(\".\");\n // Versions need to have the same number of parts to be comparable\n // Source: https://stackoverflow.com/a/65687141\n return (\n currentVersionStandarized.localeCompare(minVersionStandarized, undefined, {\n numeric: true,\n sensitivity: \"base\",\n }) < 0\n );\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["FromStringToTokenError", "E8S_PER_TOKEN", "convertStringToE8s", "value", "amount", "regexMatch", "integral", "fractional", "e8s", "E8S_PER_TOKEN", "ICPToken", "TokenAmount", "_TokenAmount", "token", "tokenAmount", "Canister", "id", "service", "certifiedService", "certified", "Actor", "AnonymousIdentity", "HttpAgent", "defaultAgent", "createAgent", "identity", "host", "fetchRootKey", "agent", "createServices", "canisterId", "serviceOverride", "certifiedServiceOverride", "agentOption", "callTransform", "queryTransform", "idlFactory", "certifiedIdlFactory", "agent", "defaultAgent", "service", "Actor", "certifiedService", "InvalidPercentageError", "NullishError", "assertNonNullish", "value", "message", "assertPercentageNumber", "percentage", "uint8ArrayToBigInt", "array", "view", "high", "low", "bigIntToUint8Array", "value", "buffer", "numberToUint8Array", "index", "arrayBufferToUint8Array", "uint8ArrayToArrayOfNumber", "arrayOfNumberToUint8Array", "numbers", "asciiStringToByteArray", "text", "c", "hexStringToUint8Array", "hexString", "matches", "assertNonNullish", "byte", "uint8ArrayToHexString", "bytes", "str", "ALPHABET", "LOOKUP_TABLE", "i", "encodeBase32", "input", "skip", "bits", "output", "encodeByte", "byte", "decodeBase32", "decodeChar", "char", "val", "assertNonNullish", "c", "lookUpTable", "crc32", "bytes", "crc", "i", "t", "bigEndianCrc32", "checksumArrayBuf", "EN_TIME", "secondsToDuration", "seconds", "i18n", "minutes", "hours", "days", "years", "fullYearsInDays", "daysInYears", "createLabel", "amount", "labelInfo", "leapDays", "labelKey", "debounce", "func", "timeout", "timer", "args", "next", "isNullish", "argument", "nonNullish", "notEmptyString", "value", "toNullable", "value", "nonNullish", "fromNullable", "fromDefinedNullable", "result", "assertNonNullish", "Principal", "JSON_KEY_BIGINT", "JSON_KEY_PRINCIPAL", "JSON_KEY_UINT8ARRAY", "jsonReplacer", "_key", "value", "nonNullish", "Principal", "jsonReviver", "mapValue", "key", "principalToSubAccount", "principal", "bytes", "subAccount", "addZeros", "nums", "amountZeros", "convertToNumber", "versionStringPart", "strippedVersion", "acc", "char", "smallerVersion", "minVersion", "currentVersion", "minVersionStandarized"]
7
7
  }
@@ -10,6 +10,7 @@ export * from "./utils/arrays.utils";
10
10
  export * from "./utils/asserts.utils";
11
11
  export * from "./utils/base32.utils";
12
12
  export * from "./utils/crc.utils";
13
+ export * from "./utils/date.utils";
13
14
  export * from "./utils/debounce.utils";
14
15
  export * from "./utils/did.utils";
15
16
  export * from "./utils/json.utils";
@@ -0,0 +1,25 @@
1
+ export interface I18nSecondsToDuration {
2
+ year: string;
3
+ year_plural: string;
4
+ month: string;
5
+ month_plural: string;
6
+ day: string;
7
+ day_plural: string;
8
+ hour: string;
9
+ hour_plural: string;
10
+ minute: string;
11
+ minute_plural: string;
12
+ second: string;
13
+ second_plural: string;
14
+ }
15
+ /**
16
+ * Convert seconds to a human-readable duration, such as "6 days, 10 hours."
17
+ * @param {Object} options - The options object.
18
+ * @param {bigint} options.seconds - The number of seconds to convert.
19
+ * @param {I18nSecondsToDuration} [options.i18n] - The i18n object for customizing language and units. Defaults to English.
20
+ * @returns {string} The human-readable duration string.
21
+ */
22
+ export declare const secondsToDuration: ({ seconds, i18n, }: {
23
+ seconds: bigint;
24
+ i18n?: I18nSecondsToDuration | undefined;
25
+ }) => string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dfinity/utils",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "description": "A collection of utilities and constants for NNS/SNS projects.",
5
5
  "license": "Apache-2.0",
6
6
  "main": "dist/cjs/index.cjs.js",