@dfinity/utils 2.4.0 → 2.5.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
|
@@ -50,6 +50,7 @@ npm i @dfinity/agent @dfinity/candid @dfinity/principal
|
|
|
50
50
|
- [asciiStringToByteArray](#gear-asciistringtobytearray)
|
|
51
51
|
- [hexStringToUint8Array](#gear-hexstringtouint8array)
|
|
52
52
|
- [uint8ArrayToHexString](#gear-uint8arraytohexstring)
|
|
53
|
+
- [candidNumberArrayToBigInt](#gear-candidnumberarraytobigint)
|
|
53
54
|
- [encodeBase32](#gear-encodebase32)
|
|
54
55
|
- [decodeBase32](#gear-decodebase32)
|
|
55
56
|
- [bigEndianCrc32](#gear-bigendiancrc32)
|
|
@@ -239,6 +240,14 @@ Parameters:
|
|
|
239
240
|
|
|
240
241
|
[:link: Source](https://github.com/dfinity/ic-js/tree/main/packages/utils/src/utils/arrays.utils.ts#L60)
|
|
241
242
|
|
|
243
|
+
#### :gear: candidNumberArrayToBigInt
|
|
244
|
+
|
|
245
|
+
| Function | Type |
|
|
246
|
+
| --------------------------- | ----------------------------- |
|
|
247
|
+
| `candidNumberArrayToBigInt` | `(array: number[]) => bigint` |
|
|
248
|
+
|
|
249
|
+
[:link: Source](https://github.com/dfinity/ic-js/tree/main/packages/utils/src/utils/arrays.utils.ts#L70)
|
|
250
|
+
|
|
242
251
|
#### :gear: encodeBase32
|
|
243
252
|
|
|
244
253
|
Encode an Uint8Array to a base32 string.
|
package/dist/cjs/index.cjs.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var y=Object.defineProperty;var V=Object.getOwnPropertyDescriptor;var F=Object.getOwnPropertyNames;var M=Object.prototype.hasOwnProperty;var Y=(e,t)=>{for(var r in t)y(e,r,{get:t[r],enumerable:!0})},K=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of F(t))!M.call(e,i)&&i!==r&&y(e,i,{get:()=>t[i],enumerable:!(n=V(t,i))||n.enumerable});return e};var H=e=>K(y({},"__esModule",{value:!0}),e);var ht={};Y(ht,{Canister:()=>h,FromStringToTokenError:()=>g,ICPToken:()=>q,InvalidPercentageError:()=>u,NullishError:()=>l,TokenAmount:()=>A,TokenAmountV2:()=>T,arrayBufferToUint8Array:()=>tt,arrayOfNumberToUint8Array:()=>rt,asNonNullish:()=>Q,asciiStringToByteArray:()=>nt,assertNonNullish:()=>x,assertPercentageNumber:()=>G,bigEndianCrc32:()=>dt,bigIntToUint8Array:()=>X,convertStringToE8s:()=>B,createAgent:()=>J,createServices:()=>z,debounce:()=>lt,decodeBase32:()=>ct,defaultAgent:()=>N,encodeBase32:()=>at,fromDefinedNullable:()=>pt,fromNullable:()=>D,hexStringToUint8Array:()=>it,isNullish:()=>k,jsonReplacer:()=>yt,jsonReviver:()=>gt,nonNullish:()=>c,notEmptyString:()=>v,numberToUint8Array:()=>Z,principalToSubAccount:()=>At,secondsToDuration:()=>bt,smallerVersion:()=>Tt,toNullable:()=>mt,uint8ArrayToArrayOfNumber:()=>et,uint8ArrayToBigInt:()=>W,uint8ArrayToHexString:()=>ot});module.exports=H(ht);var g=(n=>(n[n.FractionalMoreThan8Decimals=0]="FractionalMoreThan8Decimals",n[n.InvalidFormat=1]="InvalidFormat",n[n.FractionalTooManyDecimals=2]="FractionalTooManyDecimals",n))(g||{});var E=BigInt(1e8);var $=8,B=e=>{let t=e.includes("e")?Number(e).toLocaleString("en",{useGrouping:!1,maximumFractionDigits:20}):e;t=t.trim().replace(/[,']/g,"");let r=t.match(/\d*(\.\d*)?/);if(!r||r[0]!==t)return 1;let[n,i]=t.split("."),o=BigInt(0);if(n)try{o+=BigInt(n)*E}catch{return 1}if(i){if(i.length>8)return 0;try{o+=BigInt(i.padEnd(8,"0"))}catch{return 1}}return o},j=({amount:e,decimals:t})=>{e=e.trim().replace(/[,']/g,"");let r=e.match(/\d*(\.\d*)?/);if(!r||r[0]!==e)return 1;let[n,i]=e.split("."),o=0n,s=10n**BigInt(t);if(n)try{o+=BigInt(n)*s}catch{return 1}if(i){if(i.length>t)return 2;try{o+=BigInt(i.padEnd(t,"0"))}catch{return 1}}return o},q={symbol:"ICP",name:"Internet Computer",decimals:8},A=class e{constructor(t,r){this.e8s=t;this.token=r;if(r.decimals!==8)throw new Error("Use TokenAmountV2 for number of decimals other than 8")}static fromE8s({amount:t,token:r}){return new e(t,r)}static fromString({amount:t,token:r}){if(r.decimals!==8)throw new Error("Use TokenAmountV2 for number of decimals other than 8");let n=B(t);return typeof n=="bigint"?new e(n,r):n}static fromNumber({amount:t,token:r}){let n=e.fromString({amount:t.toString(),token:r});if(n instanceof e)return n;throw n===0?new Error(`Number ${t} has more than 8 decimals`):new Error(`Invalid number ${t}`)}toE8s(){return this.e8s}},T=class e{constructor(t,r){this.ulps=t;this.token=r}static fromUlps({amount:t,token:r}){return new e(t,r)}static fromString({amount:t,token:r}){let n=j({amount:t,decimals:r.decimals});return typeof n=="bigint"?new e(n,r):n}static fromNumber({amount:t,token:r}){let n=e.fromString({amount:t.toFixed(Math.min($,r.decimals)),token:r});if(n instanceof e)return n;throw n===2?new Error(`Number ${t} has more than ${r.decimals} decimals`):new Error(`Invalid number ${t}`)}toUlps(){return this.ulps}toE8s(){return this.token.decimals<8?this.ulps*10n**BigInt(8-this.token.decimals):this.token.decimals===8?this.ulps:this.ulps/10n**BigInt(this.token.decimals-8)}};var h=class{constructor(t,r,n){this.id=t;this.service=r;this.certifiedService=n;this.caller=({certified:t=!0})=>t?this.certifiedService:this.service}get canisterId(){return this.id}};var I=require("@dfinity/agent");var f=require("@dfinity/agent");var k=e=>e==null,c=e=>!k(e),v=e=>c(e)&&e!=="";var N=()=>new f.HttpAgent({host:"https://icp-api.io",identity:new f.AnonymousIdentity}),J=async({identity:e,host:t,fetchRootKey:r=!1,verifyQuerySignatures:n=!1,retryTimes:i})=>{let o=new f.HttpAgent({identity:e,...c(t)&&{host:t},verifyQuerySignatures:n,...c(i)&&{retryTimes:i}});return r&&await o.fetchRootKey(),o};var z=({options:{canisterId:e,serviceOverride:t,certifiedServiceOverride:r,agent:n,callTransform:i,queryTransform:o},idlFactory:s,certifiedIdlFactory:a})=>{let p=n??N(),C=t??I.Actor.createActor(s,{agent:p,canisterId:e,callTransform:i,queryTransform:o}),L=r??I.Actor.createActor(a,{agent:p,canisterId:e,callTransform:i,queryTransform:o});return{service:C,certifiedService:L,agent:p,canisterId:e}};var u=class extends Error{},l=class extends Error{},x=(e,t)=>{if(e==null)throw new l(t)},Q=(e,t)=>(x(e,t),e),G=e=>{if(e<0||e>100)throw new u(`${e} is not a valid percentage number.`)};var W=e=>{let t=new DataView(e.buffer,e.byteOffset,e.byteLength);if(typeof t.getBigUint64=="function")return t.getBigUint64(0);{let r=BigInt(t.getUint32(0)),n=BigInt(t.getUint32(4));return(r<<BigInt(32))+n}},X=e=>{let t=new ArrayBuffer(8),r=new DataView(t);if(typeof r.setBigUint64=="function")r.setBigUint64(0,e);else{let n=Number(e>>BigInt(32)),i=Number(e&BigInt(4294967295));r.setUint32(0,n),r.setUint32(4,i)}return new Uint8Array(t)},Z=e=>{let t=new DataView(new ArrayBuffer(8));for(let r=7;r>=0;--r)t.setUint8(r,e%256),e=e>>8;return new Uint8Array(t.buffer)},tt=e=>new Uint8Array(e),et=e=>Array.from(e),rt=e=>new Uint8Array(e),nt=e=>Array.from(e).map(t=>t.charCodeAt(0)),it=e=>{let t=e.match(/.{1,2}/g);return x(t,"Invalid hex string."),Uint8Array.from(t.map(r=>parseInt(r,16)))},ot=e=>(e instanceof Uint8Array||(e=Uint8Array.from(e)),e.reduce((t,r)=>t+r.toString(16).padStart(2,"0"),""));var m="abcdefghijklmnopqrstuvwxyz234567",d=Object.create(null);for(let e=0;e<m.length;e++)d[m[e]]=e;d[0]=d.o;d[1]=d.i;var at=e=>{let t=0,r=0,n="";function i(o){return t<0?r|=o>>-t:r=o<<t&248,t>3?(t-=8,1):(t<4&&(n+=m[r>>3],t+=5),0)}for(let o=0;o<e.length;)o+=i(e[o]);return n+(t<0?m[r>>3]:"")};function ct(e){let t=0,r=0,n=new Uint8Array(e.length*4/3|0),i=0;function o(s){let a=d[s.toLowerCase()];x(a,`Invalid character: ${JSON.stringify(s)}`),a<<=3,r|=a>>>t,t+=5,t>=8&&(n[i++]=r,t-=8,t>0?r=a<<5-t&255:r=0)}for(let s of e)o(s);return n.slice(0,i)}var st=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]),xt=e=>{let t=-1;for(let r=0;r<e.length;r++){let i=(e[r]^t)&255;t=st[i]^t>>>8}return(t^-1)>>>0},dt=e=>{let t=new ArrayBuffer(4);return new DataView(t).setUint32(0,xt(e),!1),new Uint8Array(t)};var ft={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"},bt=({seconds:e,i18n:t=ft})=>{let r=e/BigInt(60),n=r/BigInt(60);r-=n*BigInt(60);let i=n/BigInt(24);n-=i*BigInt(24);let o=ut(i);return i-=O(o),[b("year",o),b("day",i),b("hour",n),b("minute",r),...e>BigInt(0)&&e<BigInt(60)?[b("second",e)]:[]].filter(({amount:a})=>a>0).slice(0,2).map(a=>`${a.amount} ${a.amount===1?t[a.labelKey]:t[`${a.labelKey}_plural`]}`).join(", ")},ut=e=>{let t=e/BigInt(365);for(;O(t)>e;)t--;return t},O=e=>{let t=e/BigInt(4);return e*BigInt(365)+t},b=(e,t)=>({labelKey:e,amount:Number(t)});var lt=(e,t)=>{let r;return(...n)=>{let i=()=>e(...n);r&&clearTimeout(r),r=setTimeout(i,t!==void 0&&t>0?t:300)}};var mt=e=>c(e)?[e]:[],D=e=>e==null?void 0:e[0],pt=e=>{let t=D(e);return x(t),t};var S=require("@dfinity/principal");var U="__bigint__",_="__principal__",w="__uint8array__",yt=(e,t)=>typeof t=="bigint"?{[U]:`${t}`}:c(t)&&t instanceof S.Principal?{[_]:t.toText()}:c(t)&&t instanceof Uint8Array?{[w]:Array.from(t)}:t,gt=(e,t)=>{let r=n=>t[n];return c(t)&&typeof t=="object"&&U in t?BigInt(r(U)):c(t)&&typeof t=="object"&&_ in t?S.Principal.fromText(r(_)):c(t)&&typeof t=="object"&&w in t?Uint8Array.from(r(w)):t};var At=e=>{let t=e.toUint8Array(),r=new Uint8Array(32);return r[0]=t.length,r.set(t,1),r};var R=(e,t)=>t>e.length?[...e,...[...Array(t-e.length).keys()].map(()=>0)]:e,P=e=>{if(!Number.isNaN(Number(e)))return Number(e);let t=e.split("").reduce((r,n)=>Number.isNaN(Number(n))?r:r+n,"");return Number(t)},Tt=({minVersion:e,currentVersion:t})=>{let r=R(e.split(".").map(P),3).join(".");return R(t.split(".").map(P),3).join(".").localeCompare(r,void 0,{numeric:!0,sensitivity:"base"})<0};0&&(module.exports={Canister,FromStringToTokenError,ICPToken,InvalidPercentageError,NullishError,TokenAmount,TokenAmountV2,arrayBufferToUint8Array,arrayOfNumberToUint8Array,asNonNullish,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});
|
|
1
|
+
"use strict";var g=Object.defineProperty;var L=Object.getOwnPropertyDescriptor;var V=Object.getOwnPropertyNames;var M=Object.prototype.hasOwnProperty;var Y=(e,t)=>{for(var r in t)g(e,r,{get:t[r],enumerable:!0})},K=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of V(t))!M.call(e,i)&&i!==r&&g(e,i,{get:()=>t[i],enumerable:!(n=L(t,i))||n.enumerable});return e};var $=e=>K(g({},"__esModule",{value:!0}),e);var Nt={};Y(Nt,{Canister:()=>h,FromStringToTokenError:()=>y,ICPToken:()=>q,InvalidPercentageError:()=>u,NullishError:()=>l,TokenAmount:()=>A,TokenAmountV2:()=>T,arrayBufferToUint8Array:()=>tt,arrayOfNumberToUint8Array:()=>rt,asNonNullish:()=>Q,asciiStringToByteArray:()=>nt,assertNonNullish:()=>x,assertPercentageNumber:()=>G,bigEndianCrc32:()=>ft,bigIntToUint8Array:()=>X,candidNumberArrayToBigInt:()=>at,convertStringToE8s:()=>E,createAgent:()=>J,createServices:()=>z,debounce:()=>mt,decodeBase32:()=>st,defaultAgent:()=>N,encodeBase32:()=>ct,fromDefinedNullable:()=>gt,fromNullable:()=>D,hexStringToUint8Array:()=>it,isNullish:()=>k,jsonReplacer:()=>yt,jsonReviver:()=>At,nonNullish:()=>c,notEmptyString:()=>v,numberToUint8Array:()=>Z,principalToSubAccount:()=>Tt,secondsToDuration:()=>ut,smallerVersion:()=>ht,toNullable:()=>pt,uint8ArrayToArrayOfNumber:()=>et,uint8ArrayToBigInt:()=>W,uint8ArrayToHexString:()=>ot});module.exports=$(Nt);var y=(n=>(n[n.FractionalMoreThan8Decimals=0]="FractionalMoreThan8Decimals",n[n.InvalidFormat=1]="InvalidFormat",n[n.FractionalTooManyDecimals=2]="FractionalTooManyDecimals",n))(y||{});var B=BigInt(1e8);var j=8,E=e=>{let t=e.includes("e")?Number(e).toLocaleString("en",{useGrouping:!1,maximumFractionDigits:20}):e;t=t.trim().replace(/[,']/g,"");let r=t.match(/\d*(\.\d*)?/);if(!r||r[0]!==t)return 1;let[n,i]=t.split("."),o=BigInt(0);if(n)try{o+=BigInt(n)*B}catch{return 1}if(i){if(i.length>8)return 0;try{o+=BigInt(i.padEnd(8,"0"))}catch{return 1}}return o},H=({amount:e,decimals:t})=>{e=e.trim().replace(/[,']/g,"");let r=e.match(/\d*(\.\d*)?/);if(!r||r[0]!==e)return 1;let[n,i]=e.split("."),o=0n,s=10n**BigInt(t);if(n)try{o+=BigInt(n)*s}catch{return 1}if(i){if(i.length>t)return 2;try{o+=BigInt(i.padEnd(t,"0"))}catch{return 1}}return o},q={symbol:"ICP",name:"Internet Computer",decimals:8},A=class e{constructor(t,r){this.e8s=t;this.token=r;if(r.decimals!==8)throw new Error("Use TokenAmountV2 for number of decimals other than 8")}static fromE8s({amount:t,token:r}){return new e(t,r)}static fromString({amount:t,token:r}){if(r.decimals!==8)throw new Error("Use TokenAmountV2 for number of decimals other than 8");let n=E(t);return typeof n=="bigint"?new e(n,r):n}static fromNumber({amount:t,token:r}){let n=e.fromString({amount:t.toString(),token:r});if(n instanceof e)return n;throw n===0?new Error(`Number ${t} has more than 8 decimals`):new Error(`Invalid number ${t}`)}toE8s(){return this.e8s}},T=class e{constructor(t,r){this.ulps=t;this.token=r}static fromUlps({amount:t,token:r}){return new e(t,r)}static fromString({amount:t,token:r}){let n=H({amount:t,decimals:r.decimals});return typeof n=="bigint"?new e(n,r):n}static fromNumber({amount:t,token:r}){let n=e.fromString({amount:t.toFixed(Math.min(j,r.decimals)),token:r});if(n instanceof e)return n;throw n===2?new Error(`Number ${t} has more than ${r.decimals} decimals`):new Error(`Invalid number ${t}`)}toUlps(){return this.ulps}toE8s(){return this.token.decimals<8?this.ulps*10n**BigInt(8-this.token.decimals):this.token.decimals===8?this.ulps:this.ulps/10n**BigInt(this.token.decimals-8)}};var h=class{constructor(t,r,n){this.id=t;this.service=r;this.certifiedService=n;this.caller=({certified:t=!0})=>t?this.certifiedService:this.service}get canisterId(){return this.id}};var I=require("@dfinity/agent");var f=require("@dfinity/agent");var k=e=>e==null,c=e=>!k(e),v=e=>c(e)&&e!=="";var N=()=>f.HttpAgent.createSync({host:"https://icp-api.io",identity:new f.AnonymousIdentity}),J=async({identity:e,host:t,fetchRootKey:r=!1,verifyQuerySignatures:n=!1,retryTimes:i})=>await f.HttpAgent.create({identity:e,...c(t)&&{host:t},verifyQuerySignatures:n,...c(i)&&{retryTimes:i},shouldFetchRootKey:r});var z=({options:{canisterId:e,serviceOverride:t,certifiedServiceOverride:r,agent:n,callTransform:i,queryTransform:o},idlFactory:s,certifiedIdlFactory:a})=>{let p=n??N(),C=t??I.Actor.createActor(s,{agent:p,canisterId:e,callTransform:i,queryTransform:o}),F=r??I.Actor.createActor(a,{agent:p,canisterId:e,callTransform:i,queryTransform:o});return{service:C,certifiedService:F,agent:p,canisterId:e}};var u=class extends Error{},l=class extends Error{},x=(e,t)=>{if(e==null)throw new l(t)},Q=(e,t)=>(x(e,t),e),G=e=>{if(e<0||e>100)throw new u(`${e} is not a valid percentage number.`)};var W=e=>{let t=new DataView(e.buffer,e.byteOffset,e.byteLength);if(typeof t.getBigUint64=="function")return t.getBigUint64(0);{let r=BigInt(t.getUint32(0)),n=BigInt(t.getUint32(4));return(r<<BigInt(32))+n}},X=e=>{let t=new ArrayBuffer(8),r=new DataView(t);if(typeof r.setBigUint64=="function")r.setBigUint64(0,e);else{let n=Number(e>>BigInt(32)),i=Number(e&BigInt(4294967295));r.setUint32(0,n),r.setUint32(4,i)}return new Uint8Array(t)},Z=e=>{let t=new DataView(new ArrayBuffer(8));for(let r=7;r>=0;--r)t.setUint8(r,e%256),e=e>>8;return new Uint8Array(t.buffer)},tt=e=>new Uint8Array(e),et=e=>Array.from(e),rt=e=>new Uint8Array(e),nt=e=>Array.from(e).map(t=>t.charCodeAt(0)),it=e=>{let t=e.match(/.{1,2}/g);return x(t,"Invalid hex string."),Uint8Array.from(t.map(r=>parseInt(r,16)))},ot=e=>(e instanceof Uint8Array||(e=Uint8Array.from(e)),e.reduce((t,r)=>t+r.toString(16).padStart(2,"0"),"")),at=e=>{let t=0n;for(let r=e.length-1;r>=0;r--)t=(t<<32n)+BigInt(e[r]);return t};var m="abcdefghijklmnopqrstuvwxyz234567",d=Object.create(null);for(let e=0;e<m.length;e++)d[m[e]]=e;d[0]=d.o;d[1]=d.i;var ct=e=>{let t=0,r=0,n="";function i(o){return t<0?r|=o>>-t:r=o<<t&248,t>3?(t-=8,1):(t<4&&(n+=m[r>>3],t+=5),0)}for(let o=0;o<e.length;)o+=i(e[o]);return n+(t<0?m[r>>3]:"")};function st(e){let t=0,r=0,n=new Uint8Array(e.length*4/3|0),i=0;function o(s){let a=d[s.toLowerCase()];x(a,`Invalid character: ${JSON.stringify(s)}`),a<<=3,r|=a>>>t,t+=5,t>=8&&(n[i++]=r,t-=8,t>0?r=a<<5-t&255:r=0)}for(let s of e)o(s);return n.slice(0,i)}var xt=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]),dt=e=>{let t=-1;for(let r=0;r<e.length;r++){let i=(e[r]^t)&255;t=xt[i]^t>>>8}return(t^-1)>>>0},ft=e=>{let t=new ArrayBuffer(4);return new DataView(t).setUint32(0,dt(e),!1),new Uint8Array(t)};var bt={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"},ut=({seconds:e,i18n:t=bt})=>{let r=e/BigInt(60),n=r/BigInt(60);r-=n*BigInt(60);let i=n/BigInt(24);n-=i*BigInt(24);let o=lt(i);return i-=O(o),[b("year",o),b("day",i),b("hour",n),b("minute",r),...e>BigInt(0)&&e<BigInt(60)?[b("second",e)]:[]].filter(({amount:a})=>a>0).slice(0,2).map(a=>`${a.amount} ${a.amount===1?t[a.labelKey]:t[`${a.labelKey}_plural`]}`).join(", ")},lt=e=>{let t=e/BigInt(365);for(;O(t)>e;)t--;return t},O=e=>{let t=e/BigInt(4);return e*BigInt(365)+t},b=(e,t)=>({labelKey:e,amount:Number(t)});var mt=(e,t)=>{let r;return(...n)=>{let i=()=>e(...n);r&&clearTimeout(r),r=setTimeout(i,t!==void 0&&t>0?t:300)}};var pt=e=>c(e)?[e]:[],D=e=>e==null?void 0:e[0],gt=e=>{let t=D(e);return x(t),t};var w=require("@dfinity/principal");var U="__bigint__",_="__principal__",S="__uint8array__",yt=(e,t)=>typeof t=="bigint"?{[U]:`${t}`}:c(t)&&t instanceof w.Principal?{[_]:t.toText()}:c(t)&&t instanceof Uint8Array?{[S]:Array.from(t)}:t,At=(e,t)=>{let r=n=>t[n];return c(t)&&typeof t=="object"&&U in t?BigInt(r(U)):c(t)&&typeof t=="object"&&_ in t?w.Principal.fromText(r(_)):c(t)&&typeof t=="object"&&S in t?Uint8Array.from(r(S)):t};var Tt=e=>{let t=e.toUint8Array(),r=new Uint8Array(32);return r[0]=t.length,r.set(t,1),r};var R=(e,t)=>t>e.length?[...e,...[...Array(t-e.length).keys()].map(()=>0)]:e,P=e=>{if(!Number.isNaN(Number(e)))return Number(e);let t=e.split("").reduce((r,n)=>Number.isNaN(Number(n))?r:r+n,"");return Number(t)},ht=({minVersion:e,currentVersion:t})=>{let r=R(e.split(".").map(P),3).join(".");return R(t.split(".").map(P),3).join(".").localeCompare(r,void 0,{numeric:!0,sensitivity:"base"})<0};0&&(module.exports={Canister,FromStringToTokenError,ICPToken,InvalidPercentageError,NullishError,TokenAmount,TokenAmountV2,arrayBufferToUint8Array,arrayOfNumberToUint8Array,asNonNullish,asciiStringToByteArray,assertNonNullish,assertPercentageNumber,bigEndianCrc32,bigIntToUint8Array,candidNumberArrayToBigInt,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
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/nullish.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/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 FractionalTooManyDecimals,\n}\n", "export const E8S_PER_TOKEN = BigInt(100000000);\n", "import { E8S_PER_TOKEN } from \"../constants/constants\";\nimport { FromStringToTokenError } from \"../enums/token.enums\";\n\nconst DECIMALS_CONVERSION_SUPPORTED = 8;\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\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 */\nconst convertStringToUlps = ({\n amount,\n decimals,\n}: {\n amount: string;\n decimals: number;\n}): bigint | FromStringToTokenError => {\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 ulps = 0n;\n const ulpsPerToken = 10n ** BigInt(decimals);\n\n if (integral) {\n try {\n ulps += BigInt(integral) * ulpsPerToken;\n } catch {\n return FromStringToTokenError.InvalidFormat;\n }\n }\n\n if (fractional) {\n if (fractional.length > decimals) {\n return FromStringToTokenError.FractionalTooManyDecimals;\n }\n try {\n ulps += BigInt(fractional.padEnd(decimals, \"0\"));\n } catch {\n return FromStringToTokenError.InvalidFormat;\n }\n }\n\n return ulps;\n};\n\nexport interface Token {\n symbol: string;\n name: string;\n decimals: number;\n logo?: string;\n}\n\n// TODO: Remove this token and use the value from ICP ledger\nexport const ICPToken: Token = {\n symbol: \"ICP\",\n name: \"Internet Computer\",\n decimals: 8,\n};\n\n/**\n * Deprecated. Use TokenAmountV2 instead which supports decimals !== 8.\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 if (token.decimals !== 8) {\n throw new Error(\"Use TokenAmountV2 for number of decimals other than 8\");\n }\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 // If parsing the number fails because of the number of decimals, we still\n // want the error to be about the number of decimals and not about the\n // parsing.\n if (token.decimals !== 8) {\n throw new Error(\"Use TokenAmountV2 for number of decimals other than 8\");\n }\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\n/**\n * Represents an amount of tokens.\n *\n * @param upls - The amount of tokens in units in the last place. If the token\n * supports N decimals, 10^N ulp = 1 token.\n * @param token - The token type.\n */\nexport class TokenAmountV2 {\n private constructor(\n protected ulps: bigint,\n public token: Token,\n ) {}\n\n /**\n * Initialize from a bigint. Bigint are considered ulps.\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 fromUlps({\n amount,\n token,\n }: {\n amount: bigint;\n token: Token;\n }): TokenAmountV2 {\n return new TokenAmountV2(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 }): TokenAmountV2 | FromStringToTokenError {\n const ulps = convertStringToUlps({ amount, decimals: token.decimals });\n\n if (typeof ulps === \"bigint\") {\n return new TokenAmountV2(ulps, token);\n }\n return ulps;\n }\n\n /**\n * Initialize from a number.\n *\n * 1 integer is considered 10^{token.decimals} ulps\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 }): TokenAmountV2 {\n const tokenAmount = TokenAmountV2.fromString({\n amount: amount.toFixed(\n Math.min(DECIMALS_CONVERSION_SUPPORTED, token.decimals),\n ),\n token,\n });\n if (tokenAmount instanceof TokenAmountV2) {\n return tokenAmount;\n }\n if (tokenAmount === FromStringToTokenError.FractionalTooManyDecimals) {\n throw new Error(\n `Number ${amount} has more than ${token.decimals} decimals`,\n );\n }\n\n // This should never happen\n throw new Error(`Invalid number ${amount}`);\n }\n\n /**\n *\n * @returns The amount of ulps.\n */\n public toUlps(): bigint {\n return this.ulps;\n }\n\n /**\n *\n * @returns The amount of ulps in e8s precision\n */\n public toE8s(): bigint {\n if (this.token.decimals < 8) {\n return this.ulps * 10n ** BigInt(8 - this.token.decimals);\n } else if (this.token.decimals === 8) {\n return this.ulps;\n } else {\n return this.ulps / 10n ** BigInt(this.token.decimals - 8);\n }\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\";\nimport { nonNullish } from \"./nullish.utils\";\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://icp-api.io\",\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 * @param verifyQuerySignatures Check for signatures in the state tree signed by the node that replies to queries - i.e. certify responses.\n * @param retryTimes Set the number of retries the agent should perform before errorring.\n */\nexport const createAgent = async ({\n identity,\n host,\n fetchRootKey = false,\n verifyQuerySignatures = false,\n retryTimes,\n}: {\n identity: Identity;\n host?: string;\n fetchRootKey?: boolean;\n // @deprecated Shipped as an opt-in feature but, will become the default in next major version\n verifyQuerySignatures?: boolean;\n retryTimes?: number;\n}): Promise<HttpAgent> => {\n const agent: HttpAgent = new HttpAgent({\n identity,\n ...(nonNullish(host) && { host }),\n verifyQuerySignatures,\n ...(nonNullish(retryTimes) && { retryTimes }),\n });\n\n if (fetchRootKey) {\n await agent.fetchRootKey();\n }\n\n return agent;\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", "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};\n\nexport const asNonNullish = <T>(value: T, message?: string): NonNullable<T> => {\n assertNonNullish(value, message);\n return value;\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 | number[]) => {\n if (!(bytes instanceof Uint8Array)) {\n bytes = Uint8Array.from(bytes);\n }\n return bytes.reduce(\n (str, byte) => str + byte.toString(16).padStart(2, \"0\"),\n \"\",\n );\n};\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", "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", "TokenAmountV2", "arrayBufferToUint8Array", "arrayOfNumberToUint8Array", "asNonNullish", "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", "DECIMALS_CONVERSION_SUPPORTED", "convertStringToE8s", "value", "amount", "regexMatch", "integral", "fractional", "e8s", "E8S_PER_TOKEN", "convertStringToUlps", "decimals", "ulps", "ulpsPerToken", "ICPToken", "TokenAmount", "_TokenAmount", "token", "tokenAmount", "TokenAmountV2", "_TokenAmountV2", "Canister", "id", "service", "certifiedService", "certified", "import_agent", "import_agent", "isNullish", "argument", "nonNullish", "notEmptyString", "value", "defaultAgent", "createAgent", "identity", "host", "fetchRootKey", "verifyQuerySignatures", "retryTimes", "
|
|
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 FractionalTooManyDecimals,\n}\n", "export const E8S_PER_TOKEN = BigInt(100000000);\n", "import { E8S_PER_TOKEN } from \"../constants/constants\";\nimport { FromStringToTokenError } from \"../enums/token.enums\";\n\nconst DECIMALS_CONVERSION_SUPPORTED = 8;\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\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 */\nconst convertStringToUlps = ({\n amount,\n decimals,\n}: {\n amount: string;\n decimals: number;\n}): bigint | FromStringToTokenError => {\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 ulps = 0n;\n const ulpsPerToken = 10n ** BigInt(decimals);\n\n if (integral) {\n try {\n ulps += BigInt(integral) * ulpsPerToken;\n } catch {\n return FromStringToTokenError.InvalidFormat;\n }\n }\n\n if (fractional) {\n if (fractional.length > decimals) {\n return FromStringToTokenError.FractionalTooManyDecimals;\n }\n try {\n ulps += BigInt(fractional.padEnd(decimals, \"0\"));\n } catch {\n return FromStringToTokenError.InvalidFormat;\n }\n }\n\n return ulps;\n};\n\nexport interface Token {\n symbol: string;\n name: string;\n decimals: number;\n logo?: string;\n}\n\n// TODO: Remove this token and use the value from ICP ledger\nexport const ICPToken: Token = {\n symbol: \"ICP\",\n name: \"Internet Computer\",\n decimals: 8,\n};\n\n/**\n * Deprecated. Use TokenAmountV2 instead which supports decimals !== 8.\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 if (token.decimals !== 8) {\n throw new Error(\"Use TokenAmountV2 for number of decimals other than 8\");\n }\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 // If parsing the number fails because of the number of decimals, we still\n // want the error to be about the number of decimals and not about the\n // parsing.\n if (token.decimals !== 8) {\n throw new Error(\"Use TokenAmountV2 for number of decimals other than 8\");\n }\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\n/**\n * Represents an amount of tokens.\n *\n * @param upls - The amount of tokens in units in the last place. If the token\n * supports N decimals, 10^N ulp = 1 token.\n * @param token - The token type.\n */\nexport class TokenAmountV2 {\n private constructor(\n protected ulps: bigint,\n public token: Token,\n ) {}\n\n /**\n * Initialize from a bigint. Bigint are considered ulps.\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 fromUlps({\n amount,\n token,\n }: {\n amount: bigint;\n token: Token;\n }): TokenAmountV2 {\n return new TokenAmountV2(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 }): TokenAmountV2 | FromStringToTokenError {\n const ulps = convertStringToUlps({ amount, decimals: token.decimals });\n\n if (typeof ulps === \"bigint\") {\n return new TokenAmountV2(ulps, token);\n }\n return ulps;\n }\n\n /**\n * Initialize from a number.\n *\n * 1 integer is considered 10^{token.decimals} ulps\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 }): TokenAmountV2 {\n const tokenAmount = TokenAmountV2.fromString({\n amount: amount.toFixed(\n Math.min(DECIMALS_CONVERSION_SUPPORTED, token.decimals),\n ),\n token,\n });\n if (tokenAmount instanceof TokenAmountV2) {\n return tokenAmount;\n }\n if (tokenAmount === FromStringToTokenError.FractionalTooManyDecimals) {\n throw new Error(\n `Number ${amount} has more than ${token.decimals} decimals`,\n );\n }\n\n // This should never happen\n throw new Error(`Invalid number ${amount}`);\n }\n\n /**\n *\n * @returns The amount of ulps.\n */\n public toUlps(): bigint {\n return this.ulps;\n }\n\n /**\n *\n * @returns The amount of ulps in e8s precision\n */\n public toE8s(): bigint {\n if (this.token.decimals < 8) {\n return this.ulps * 10n ** BigInt(8 - this.token.decimals);\n } else if (this.token.decimals === 8) {\n return this.ulps;\n } else {\n return this.ulps / 10n ** BigInt(this.token.decimals - 8);\n }\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\";\nimport { nonNullish } from \"./nullish.utils\";\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 HttpAgent.createSync({\n host: \"https://icp-api.io\",\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 * @param verifyQuerySignatures Check for signatures in the state tree signed by the node that replies to queries - i.e. certify responses.\n * @param retryTimes Set the number of retries the agent should perform before errorring.\n */\nexport const createAgent = async ({\n identity,\n host,\n fetchRootKey = false,\n verifyQuerySignatures = false,\n retryTimes,\n}: {\n identity: Identity;\n host?: string;\n fetchRootKey?: boolean;\n // @deprecated Shipped as an opt-in feature but, will become the default in next major version\n verifyQuerySignatures?: boolean;\n retryTimes?: number;\n}): Promise<HttpAgent> => {\n return await HttpAgent.create({\n identity,\n ...(nonNullish(host) && { host }),\n verifyQuerySignatures,\n ...(nonNullish(retryTimes) && { retryTimes }),\n shouldFetchRootKey: fetchRootKey,\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", "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};\n\nexport const asNonNullish = <T>(value: T, message?: string): NonNullable<T> => {\n assertNonNullish(value, message);\n return value;\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 | number[]) => {\n if (!(bytes instanceof Uint8Array)) {\n bytes = Uint8Array.from(bytes);\n }\n return bytes.reduce(\n (str, byte) => str + byte.toString(16).padStart(2, \"0\"),\n \"\",\n );\n};\n\nexport const candidNumberArrayToBigInt = (array: number[]): bigint => {\n let result = 0n;\n for (let i = array.length - 1; i >= 0; i--) {\n result = (result << 32n) + BigInt(array[i]);\n }\n return result;\n};\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", "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", "TokenAmountV2", "arrayBufferToUint8Array", "arrayOfNumberToUint8Array", "asNonNullish", "asciiStringToByteArray", "assertNonNullish", "assertPercentageNumber", "bigEndianCrc32", "bigIntToUint8Array", "candidNumberArrayToBigInt", "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", "DECIMALS_CONVERSION_SUPPORTED", "convertStringToE8s", "value", "amount", "regexMatch", "integral", "fractional", "e8s", "E8S_PER_TOKEN", "convertStringToUlps", "decimals", "ulps", "ulpsPerToken", "ICPToken", "TokenAmount", "_TokenAmount", "token", "tokenAmount", "TokenAmountV2", "_TokenAmountV2", "Canister", "id", "service", "certifiedService", "certified", "import_agent", "import_agent", "isNullish", "argument", "nonNullish", "notEmptyString", "value", "defaultAgent", "createAgent", "identity", "host", "fetchRootKey", "verifyQuerySignatures", "retryTimes", "nonNullish", "createServices", "canisterId", "serviceOverride", "certifiedServiceOverride", "agentOption", "callTransform", "queryTransform", "idlFactory", "certifiedIdlFactory", "agent", "defaultAgent", "service", "certifiedService", "InvalidPercentageError", "NullishError", "assertNonNullish", "value", "message", "asNonNullish", "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", "candidNumberArrayToBigInt", "result", "i", "ALPHABET", "LOOKUP_TABLE", "i", "encodeBase32", "input", "skip", "bits", "output", "encodeByte", "byte", "decodeBase32", "o", "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", "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 A=(n=>(n[n.FractionalMoreThan8Decimals=0]="FractionalMoreThan8Decimals",n[n.InvalidFormat=1]="InvalidFormat",n[n.FractionalTooManyDecimals=2]="FractionalTooManyDecimals",n))(A||{});var T=BigInt(1e8);var R=8,P=e=>{let t=e.includes("e")?Number(e).toLocaleString("en",{useGrouping:!1,maximumFractionDigits:20}):e;t=t.trim().replace(/[,']/g,"");let r=t.match(/\d*(\.\d*)?/);if(!r||r[0]!==t)return 1;let[n,i]=t.split("."),o=BigInt(0);if(n)try{o+=BigInt(n)*T}catch{return 1}if(i){if(i.length>8)return 0;try{o+=BigInt(i.padEnd(8,"0"))}catch{return 1}}return o},C=({amount:e,decimals:t})=>{e=e.trim().replace(/[,']/g,"");let r=e.match(/\d*(\.\d*)?/);if(!r||r[0]!==e)return 1;let[n,i]=e.split("."),o=0n,s=10n**BigInt(t);if(n)try{o+=BigInt(n)*s}catch{return 1}if(i){if(i.length>t)return 2;try{o+=BigInt(i.padEnd(t,"0"))}catch{return 1}}return o},J={symbol:"ICP",name:"Internet Computer",decimals:8},h=class e{constructor(t,r){this.e8s=t;this.token=r;if(r.decimals!==8)throw new Error("Use TokenAmountV2 for number of decimals other than 8")}static fromE8s({amount:t,token:r}){return new e(t,r)}static fromString({amount:t,token:r}){if(r.decimals!==8)throw new Error("Use TokenAmountV2 for number of decimals other than 8");let n=P(t);return typeof n=="bigint"?new e(n,r):n}static fromNumber({amount:t,token:r}){let n=e.fromString({amount:t.toString(),token:r});if(n instanceof e)return n;throw n===0?new Error(`Number ${t} has more than 8 decimals`):new Error(`Invalid number ${t}`)}toE8s(){return this.e8s}},N=class e{constructor(t,r){this.ulps=t;this.token=r}static fromUlps({amount:t,token:r}){return new e(t,r)}static fromString({amount:t,token:r}){let n=C({amount:t,decimals:r.decimals});return typeof n=="bigint"?new e(n,r):n}static fromNumber({amount:t,token:r}){let n=e.fromString({amount:t.toFixed(Math.min(R,r.decimals)),token:r});if(n instanceof e)return n;throw n===2?new Error(`Number ${t} has more than ${r.decimals} decimals`):new Error(`Invalid number ${t}`)}toUlps(){return this.ulps}toE8s(){return this.token.decimals<8?this.ulps*10n**BigInt(8-this.token.decimals):this.token.decimals===8?this.ulps:this.ulps/10n**BigInt(this.token.decimals-8)}};var I=class{constructor(t,r,n){this.id=t;this.service=r;this.certifiedService=n;this.caller=({certified:t=!0})=>t?this.certifiedService:this.service}get canisterId(){return this.id}};import{Actor as w}from"@dfinity/agent";import{AnonymousIdentity as V,HttpAgent as U}from"@dfinity/agent";var L=e=>e==null,c=e=>!L(e),G=e=>c(e)&&e!=="";var _=()=>new U({host:"https://icp-api.io",identity:new V}),tt=async({identity:e,host:t,fetchRootKey:r=!1,verifyQuerySignatures:n=!1,retryTimes:i})=>{let o=new U({identity:e,...c(t)&&{host:t},verifyQuerySignatures:n,...c(i)&&{retryTimes:i}});return r&&await o.fetchRootKey(),o};var it=({options:{canisterId:e,serviceOverride:t,certifiedServiceOverride:r,agent:n,callTransform:i,queryTransform:o},idlFactory:s,certifiedIdlFactory:a})=>{let u=n??_(),O=t??w.createActor(s,{agent:u,canisterId:e,callTransform:i,queryTransform:o}),D=r??w.createActor(a,{agent:u,canisterId:e,callTransform:i,queryTransform:o});return{service:O,certifiedService:D,agent:u,canisterId:e}};var l=class extends Error{},m=class extends Error{},x=(e,t)=>{if(e==null)throw new m(t)},at=(e,t)=>(x(e,t),e),ct=e=>{if(e<0||e>100)throw new l(`${e} is not a valid percentage number.`)};var dt=e=>{let t=new DataView(e.buffer,e.byteOffset,e.byteLength);if(typeof t.getBigUint64=="function")return t.getBigUint64(0);{let r=BigInt(t.getUint32(0)),n=BigInt(t.getUint32(4));return(r<<BigInt(32))+n}},ft=e=>{let t=new ArrayBuffer(8),r=new DataView(t);if(typeof r.setBigUint64=="function")r.setBigUint64(0,e);else{let n=Number(e>>BigInt(32)),i=Number(e&BigInt(4294967295));r.setUint32(0,n),r.setUint32(4,i)}return new Uint8Array(t)},bt=e=>{let t=new DataView(new ArrayBuffer(8));for(let r=7;r>=0;--r)t.setUint8(r,e%256),e=e>>8;return new Uint8Array(t.buffer)},ut=e=>new Uint8Array(e),lt=e=>Array.from(e),mt=e=>new Uint8Array(e),pt=e=>Array.from(e).map(t=>t.charCodeAt(0)),yt=e=>{let t=e.match(/.{1,2}/g);return x(t,"Invalid hex string."),Uint8Array.from(t.map(r=>parseInt(r,16)))},gt=e=>(e instanceof Uint8Array||(e=Uint8Array.from(e)),e.reduce((t,r)=>t+r.toString(16).padStart(2,"0"),""));var b="abcdefghijklmnopqrstuvwxyz234567",d=Object.create(null);for(let e=0;e<b.length;e++)d[b[e]]=e;d[0]=d.o;d[1]=d.i;var ht=e=>{let t=0,r=0,n="";function i(o){return t<0?r|=o>>-t:r=o<<t&248,t>3?(t-=8,1):(t<4&&(n+=b[r>>3],t+=5),0)}for(let o=0;o<e.length;)o+=i(e[o]);return n+(t<0?b[r>>3]:"")};function Nt(e){let t=0,r=0,n=new Uint8Array(e.length*4/3|0),i=0;function o(s){let a=d[s.toLowerCase()];x(a,`Invalid character: ${JSON.stringify(s)}`),a<<=3,r|=a>>>t,t+=5,t>=8&&(n[i++]=r,t-=8,t>0?r=a<<5-t&255:r=0)}for(let s of e)o(s);return n.slice(0,i)}var F=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]),M=e=>{let t=-1;for(let r=0;r<e.length;r++){let i=(e[r]^t)&255;t=F[i]^t>>>8}return(t^-1)>>>0},Ut=e=>{let t=new ArrayBuffer(4);return new DataView(t).setUint32(0,M(e),!1),new Uint8Array(t)};var Y={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"},wt=({seconds:e,i18n:t=Y})=>{let r=e/BigInt(60),n=r/BigInt(60);r-=n*BigInt(60);let i=n/BigInt(24);n-=i*BigInt(24);let o=K(i);return i-=S(o),[f("year",o),f("day",i),f("hour",n),f("minute",r),...e>BigInt(0)&&e<BigInt(60)?[f("second",e)]:[]].filter(({amount:a})=>a>0).slice(0,2).map(a=>`${a.amount} ${a.amount===1?t[a.labelKey]:t[`${a.labelKey}_plural`]}`).join(", ")},K=e=>{let t=e/BigInt(365);for(;S(t)>e;)t--;return t},S=e=>{let t=e/BigInt(4);return e*BigInt(365)+t},f=(e,t)=>({labelKey:e,amount:Number(t)});var Et=(e,t)=>{let r;return(...n)=>{let i=()=>e(...n);r&&clearTimeout(r),r=setTimeout(i,t!==void 0&&t>0?t:300)}};var Dt=e=>c(e)?[e]:[],H=e=>e?.[0],Rt=e=>{let t=H(e);return x(t),t};import{Principal as E}from"@dfinity/principal";var p="__bigint__",y="__principal__",g="__uint8array__",Vt=(e,t)=>typeof t=="bigint"?{[p]:`${t}`}:c(t)&&t instanceof E?{[y]:t.toText()}:c(t)&&t instanceof Uint8Array?{[g]:Array.from(t)}:t,Ft=(e,t)=>{let r=n=>t[n];return c(t)&&typeof t=="object"&&p in t?BigInt(r(p)):c(t)&&typeof t=="object"&&y in t?E.fromText(r(y)):c(t)&&typeof t=="object"&&g in t?Uint8Array.from(r(g)):t};var Yt=e=>{let t=e.toUint8Array(),r=new Uint8Array(32);return r[0]=t.length,r.set(t,1),r};var B=(e,t)=>t>e.length?[...e,...[...Array(t-e.length).keys()].map(()=>0)]:e,k=e=>{if(!Number.isNaN(Number(e)))return Number(e);let t=e.split("").reduce((r,n)=>Number.isNaN(Number(n))?r:r+n,"");return Number(t)},Ht=({minVersion:e,currentVersion:t})=>{let r=B(e.split(".").map(k),3).join(".");return B(t.split(".").map(k),3).join(".").localeCompare(r,void 0,{numeric:!0,sensitivity:"base"})<0};export{I as Canister,A as FromStringToTokenError,J as ICPToken,l as InvalidPercentageError,m as NullishError,h as TokenAmount,N as TokenAmountV2,ut as arrayBufferToUint8Array,mt as arrayOfNumberToUint8Array,at as asNonNullish,pt as asciiStringToByteArray,x as assertNonNullish,ct as assertPercentageNumber,Ut as bigEndianCrc32,ft as bigIntToUint8Array,P as convertStringToE8s,tt as createAgent,it as createServices,Et as debounce,Nt as decodeBase32,_ as defaultAgent,ht as encodeBase32,Rt as fromDefinedNullable,H as fromNullable,yt as hexStringToUint8Array,L as isNullish,Vt as jsonReplacer,Ft as jsonReviver,c as nonNullish,G as notEmptyString,bt as numberToUint8Array,Yt as principalToSubAccount,wt as secondsToDuration,Ht as smallerVersion,Dt as toNullable,lt as uint8ArrayToArrayOfNumber,dt as uint8ArrayToBigInt,gt as uint8ArrayToHexString};
|
|
1
|
+
var A=(n=>(n[n.FractionalMoreThan8Decimals=0]="FractionalMoreThan8Decimals",n[n.InvalidFormat=1]="InvalidFormat",n[n.FractionalTooManyDecimals=2]="FractionalTooManyDecimals",n))(A||{});var T=BigInt(1e8);var R=8,P=e=>{let t=e.includes("e")?Number(e).toLocaleString("en",{useGrouping:!1,maximumFractionDigits:20}):e;t=t.trim().replace(/[,']/g,"");let r=t.match(/\d*(\.\d*)?/);if(!r||r[0]!==t)return 1;let[n,i]=t.split("."),o=BigInt(0);if(n)try{o+=BigInt(n)*T}catch{return 1}if(i){if(i.length>8)return 0;try{o+=BigInt(i.padEnd(8,"0"))}catch{return 1}}return o},C=({amount:e,decimals:t})=>{e=e.trim().replace(/[,']/g,"");let r=e.match(/\d*(\.\d*)?/);if(!r||r[0]!==e)return 1;let[n,i]=e.split("."),o=0n,s=10n**BigInt(t);if(n)try{o+=BigInt(n)*s}catch{return 1}if(i){if(i.length>t)return 2;try{o+=BigInt(i.padEnd(t,"0"))}catch{return 1}}return o},J={symbol:"ICP",name:"Internet Computer",decimals:8},h=class e{constructor(t,r){this.e8s=t;this.token=r;if(r.decimals!==8)throw new Error("Use TokenAmountV2 for number of decimals other than 8")}static fromE8s({amount:t,token:r}){return new e(t,r)}static fromString({amount:t,token:r}){if(r.decimals!==8)throw new Error("Use TokenAmountV2 for number of decimals other than 8");let n=P(t);return typeof n=="bigint"?new e(n,r):n}static fromNumber({amount:t,token:r}){let n=e.fromString({amount:t.toString(),token:r});if(n instanceof e)return n;throw n===0?new Error(`Number ${t} has more than 8 decimals`):new Error(`Invalid number ${t}`)}toE8s(){return this.e8s}},N=class e{constructor(t,r){this.ulps=t;this.token=r}static fromUlps({amount:t,token:r}){return new e(t,r)}static fromString({amount:t,token:r}){let n=C({amount:t,decimals:r.decimals});return typeof n=="bigint"?new e(n,r):n}static fromNumber({amount:t,token:r}){let n=e.fromString({amount:t.toFixed(Math.min(R,r.decimals)),token:r});if(n instanceof e)return n;throw n===2?new Error(`Number ${t} has more than ${r.decimals} decimals`):new Error(`Invalid number ${t}`)}toUlps(){return this.ulps}toE8s(){return this.token.decimals<8?this.ulps*10n**BigInt(8-this.token.decimals):this.token.decimals===8?this.ulps:this.ulps/10n**BigInt(this.token.decimals-8)}};var I=class{constructor(t,r,n){this.id=t;this.service=r;this.certifiedService=n;this.caller=({certified:t=!0})=>t?this.certifiedService:this.service}get canisterId(){return this.id}};import{Actor as S}from"@dfinity/agent";import{AnonymousIdentity as L,HttpAgent as U}from"@dfinity/agent";var F=e=>e==null,c=e=>!F(e),G=e=>c(e)&&e!=="";var _=()=>U.createSync({host:"https://icp-api.io",identity:new L}),tt=async({identity:e,host:t,fetchRootKey:r=!1,verifyQuerySignatures:n=!1,retryTimes:i})=>await U.create({identity:e,...c(t)&&{host:t},verifyQuerySignatures:n,...c(i)&&{retryTimes:i},shouldFetchRootKey:r});var it=({options:{canisterId:e,serviceOverride:t,certifiedServiceOverride:r,agent:n,callTransform:i,queryTransform:o},idlFactory:s,certifiedIdlFactory:a})=>{let u=n??_(),O=t??S.createActor(s,{agent:u,canisterId:e,callTransform:i,queryTransform:o}),D=r??S.createActor(a,{agent:u,canisterId:e,callTransform:i,queryTransform:o});return{service:O,certifiedService:D,agent:u,canisterId:e}};var l=class extends Error{},m=class extends Error{},x=(e,t)=>{if(e==null)throw new m(t)},at=(e,t)=>(x(e,t),e),ct=e=>{if(e<0||e>100)throw new l(`${e} is not a valid percentage number.`)};var dt=e=>{let t=new DataView(e.buffer,e.byteOffset,e.byteLength);if(typeof t.getBigUint64=="function")return t.getBigUint64(0);{let r=BigInt(t.getUint32(0)),n=BigInt(t.getUint32(4));return(r<<BigInt(32))+n}},ft=e=>{let t=new ArrayBuffer(8),r=new DataView(t);if(typeof r.setBigUint64=="function")r.setBigUint64(0,e);else{let n=Number(e>>BigInt(32)),i=Number(e&BigInt(4294967295));r.setUint32(0,n),r.setUint32(4,i)}return new Uint8Array(t)},bt=e=>{let t=new DataView(new ArrayBuffer(8));for(let r=7;r>=0;--r)t.setUint8(r,e%256),e=e>>8;return new Uint8Array(t.buffer)},ut=e=>new Uint8Array(e),lt=e=>Array.from(e),mt=e=>new Uint8Array(e),pt=e=>Array.from(e).map(t=>t.charCodeAt(0)),gt=e=>{let t=e.match(/.{1,2}/g);return x(t,"Invalid hex string."),Uint8Array.from(t.map(r=>parseInt(r,16)))},yt=e=>(e instanceof Uint8Array||(e=Uint8Array.from(e)),e.reduce((t,r)=>t+r.toString(16).padStart(2,"0"),"")),At=e=>{let t=0n;for(let r=e.length-1;r>=0;r--)t=(t<<32n)+BigInt(e[r]);return t};var b="abcdefghijklmnopqrstuvwxyz234567",d=Object.create(null);for(let e=0;e<b.length;e++)d[b[e]]=e;d[0]=d.o;d[1]=d.i;var Nt=e=>{let t=0,r=0,n="";function i(o){return t<0?r|=o>>-t:r=o<<t&248,t>3?(t-=8,1):(t<4&&(n+=b[r>>3],t+=5),0)}for(let o=0;o<e.length;)o+=i(e[o]);return n+(t<0?b[r>>3]:"")};function It(e){let t=0,r=0,n=new Uint8Array(e.length*4/3|0),i=0;function o(s){let a=d[s.toLowerCase()];x(a,`Invalid character: ${JSON.stringify(s)}`),a<<=3,r|=a>>>t,t+=5,t>=8&&(n[i++]=r,t-=8,t>0?r=a<<5-t&255:r=0)}for(let s of e)o(s);return n.slice(0,i)}var V=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]),M=e=>{let t=-1;for(let r=0;r<e.length;r++){let i=(e[r]^t)&255;t=V[i]^t>>>8}return(t^-1)>>>0},_t=e=>{let t=new ArrayBuffer(4);return new DataView(t).setUint32(0,M(e),!1),new Uint8Array(t)};var Y={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"},wt=({seconds:e,i18n:t=Y})=>{let r=e/BigInt(60),n=r/BigInt(60);r-=n*BigInt(60);let i=n/BigInt(24);n-=i*BigInt(24);let o=K(i);return i-=w(o),[f("year",o),f("day",i),f("hour",n),f("minute",r),...e>BigInt(0)&&e<BigInt(60)?[f("second",e)]:[]].filter(({amount:a})=>a>0).slice(0,2).map(a=>`${a.amount} ${a.amount===1?t[a.labelKey]:t[`${a.labelKey}_plural`]}`).join(", ")},K=e=>{let t=e/BigInt(365);for(;w(t)>e;)t--;return t},w=e=>{let t=e/BigInt(4);return e*BigInt(365)+t},f=(e,t)=>({labelKey:e,amount:Number(t)});var Et=(e,t)=>{let r;return(...n)=>{let i=()=>e(...n);r&&clearTimeout(r),r=setTimeout(i,t!==void 0&&t>0?t:300)}};var Rt=e=>c(e)?[e]:[],$=e=>e?.[0],Pt=e=>{let t=$(e);return x(t),t};import{Principal as B}from"@dfinity/principal";var p="__bigint__",g="__principal__",y="__uint8array__",Vt=(e,t)=>typeof t=="bigint"?{[p]:`${t}`}:c(t)&&t instanceof B?{[g]:t.toText()}:c(t)&&t instanceof Uint8Array?{[y]:Array.from(t)}:t,Mt=(e,t)=>{let r=n=>t[n];return c(t)&&typeof t=="object"&&p in t?BigInt(r(p)):c(t)&&typeof t=="object"&&g in t?B.fromText(r(g)):c(t)&&typeof t=="object"&&y in t?Uint8Array.from(r(y)):t};var Kt=e=>{let t=e.toUint8Array(),r=new Uint8Array(32);return r[0]=t.length,r.set(t,1),r};var E=(e,t)=>t>e.length?[...e,...[...Array(t-e.length).keys()].map(()=>0)]:e,k=e=>{if(!Number.isNaN(Number(e)))return Number(e);let t=e.split("").reduce((r,n)=>Number.isNaN(Number(n))?r:r+n,"");return Number(t)},jt=({minVersion:e,currentVersion:t})=>{let r=E(e.split(".").map(k),3).join(".");return E(t.split(".").map(k),3).join(".").localeCompare(r,void 0,{numeric:!0,sensitivity:"base"})<0};export{I as Canister,A as FromStringToTokenError,J as ICPToken,l as InvalidPercentageError,m as NullishError,h as TokenAmount,N as TokenAmountV2,ut as arrayBufferToUint8Array,mt as arrayOfNumberToUint8Array,at as asNonNullish,pt as asciiStringToByteArray,x as assertNonNullish,ct as assertPercentageNumber,_t as bigEndianCrc32,ft as bigIntToUint8Array,At as candidNumberArrayToBigInt,P as convertStringToE8s,tt as createAgent,it as createServices,Et as debounce,It as decodeBase32,_ as defaultAgent,Nt as encodeBase32,Pt as fromDefinedNullable,$ as fromNullable,gt as hexStringToUint8Array,F as isNullish,Vt as jsonReplacer,Mt as jsonReviver,c as nonNullish,G as notEmptyString,bt as numberToUint8Array,Kt as principalToSubAccount,wt as secondsToDuration,jt as smallerVersion,Rt as toNullable,lt as uint8ArrayToArrayOfNumber,dt as uint8ArrayToBigInt,yt as uint8ArrayToHexString};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
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/nullish.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/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 FractionalTooManyDecimals,\n}\n", "export const E8S_PER_TOKEN = BigInt(100000000);\n", "import { E8S_PER_TOKEN } from \"../constants/constants\";\nimport { FromStringToTokenError } from \"../enums/token.enums\";\n\nconst DECIMALS_CONVERSION_SUPPORTED = 8;\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\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 */\nconst convertStringToUlps = ({\n amount,\n decimals,\n}: {\n amount: string;\n decimals: number;\n}): bigint | FromStringToTokenError => {\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 ulps = 0n;\n const ulpsPerToken = 10n ** BigInt(decimals);\n\n if (integral) {\n try {\n ulps += BigInt(integral) * ulpsPerToken;\n } catch {\n return FromStringToTokenError.InvalidFormat;\n }\n }\n\n if (fractional) {\n if (fractional.length > decimals) {\n return FromStringToTokenError.FractionalTooManyDecimals;\n }\n try {\n ulps += BigInt(fractional.padEnd(decimals, \"0\"));\n } catch {\n return FromStringToTokenError.InvalidFormat;\n }\n }\n\n return ulps;\n};\n\nexport interface Token {\n symbol: string;\n name: string;\n decimals: number;\n logo?: string;\n}\n\n// TODO: Remove this token and use the value from ICP ledger\nexport const ICPToken: Token = {\n symbol: \"ICP\",\n name: \"Internet Computer\",\n decimals: 8,\n};\n\n/**\n * Deprecated. Use TokenAmountV2 instead which supports decimals !== 8.\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 if (token.decimals !== 8) {\n throw new Error(\"Use TokenAmountV2 for number of decimals other than 8\");\n }\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 // If parsing the number fails because of the number of decimals, we still\n // want the error to be about the number of decimals and not about the\n // parsing.\n if (token.decimals !== 8) {\n throw new Error(\"Use TokenAmountV2 for number of decimals other than 8\");\n }\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\n/**\n * Represents an amount of tokens.\n *\n * @param upls - The amount of tokens in units in the last place. If the token\n * supports N decimals, 10^N ulp = 1 token.\n * @param token - The token type.\n */\nexport class TokenAmountV2 {\n private constructor(\n protected ulps: bigint,\n public token: Token,\n ) {}\n\n /**\n * Initialize from a bigint. Bigint are considered ulps.\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 fromUlps({\n amount,\n token,\n }: {\n amount: bigint;\n token: Token;\n }): TokenAmountV2 {\n return new TokenAmountV2(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 }): TokenAmountV2 | FromStringToTokenError {\n const ulps = convertStringToUlps({ amount, decimals: token.decimals });\n\n if (typeof ulps === \"bigint\") {\n return new TokenAmountV2(ulps, token);\n }\n return ulps;\n }\n\n /**\n * Initialize from a number.\n *\n * 1 integer is considered 10^{token.decimals} ulps\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 }): TokenAmountV2 {\n const tokenAmount = TokenAmountV2.fromString({\n amount: amount.toFixed(\n Math.min(DECIMALS_CONVERSION_SUPPORTED, token.decimals),\n ),\n token,\n });\n if (tokenAmount instanceof TokenAmountV2) {\n return tokenAmount;\n }\n if (tokenAmount === FromStringToTokenError.FractionalTooManyDecimals) {\n throw new Error(\n `Number ${amount} has more than ${token.decimals} decimals`,\n );\n }\n\n // This should never happen\n throw new Error(`Invalid number ${amount}`);\n }\n\n /**\n *\n * @returns The amount of ulps.\n */\n public toUlps(): bigint {\n return this.ulps;\n }\n\n /**\n *\n * @returns The amount of ulps in e8s precision\n */\n public toE8s(): bigint {\n if (this.token.decimals < 8) {\n return this.ulps * 10n ** BigInt(8 - this.token.decimals);\n } else if (this.token.decimals === 8) {\n return this.ulps;\n } else {\n return this.ulps / 10n ** BigInt(this.token.decimals - 8);\n }\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\";\nimport { nonNullish } from \"./nullish.utils\";\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://icp-api.io\",\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 * @param verifyQuerySignatures Check for signatures in the state tree signed by the node that replies to queries - i.e. certify responses.\n * @param retryTimes Set the number of retries the agent should perform before errorring.\n */\nexport const createAgent = async ({\n identity,\n host,\n fetchRootKey = false,\n verifyQuerySignatures = false,\n retryTimes,\n}: {\n identity: Identity;\n host?: string;\n fetchRootKey?: boolean;\n // @deprecated Shipped as an opt-in feature but, will become the default in next major version\n verifyQuerySignatures?: boolean;\n retryTimes?: number;\n}): Promise<HttpAgent> => {\n const agent: HttpAgent = new HttpAgent({\n identity,\n ...(nonNullish(host) && { host }),\n verifyQuerySignatures,\n ...(nonNullish(retryTimes) && { retryTimes }),\n });\n\n if (fetchRootKey) {\n await agent.fetchRootKey();\n }\n\n return agent;\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", "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};\n\nexport const asNonNullish = <T>(value: T, message?: string): NonNullable<T> => {\n assertNonNullish(value, message);\n return value;\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 | number[]) => {\n if (!(bytes instanceof Uint8Array)) {\n bytes = Uint8Array.from(bytes);\n }\n return bytes.reduce(\n (str, byte) => str + byte.toString(16).padStart(2, \"0\"),\n \"\",\n );\n};\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", "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", "DECIMALS_CONVERSION_SUPPORTED", "convertStringToE8s", "value", "amount", "regexMatch", "integral", "fractional", "e8s", "E8S_PER_TOKEN", "convertStringToUlps", "decimals", "ulps", "ulpsPerToken", "ICPToken", "TokenAmount", "_TokenAmount", "token", "tokenAmount", "TokenAmountV2", "_TokenAmountV2", "Canister", "id", "service", "certifiedService", "certified", "Actor", "AnonymousIdentity", "HttpAgent", "isNullish", "argument", "nonNullish", "notEmptyString", "value", "defaultAgent", "HttpAgent", "AnonymousIdentity", "createAgent", "identity", "host", "fetchRootKey", "verifyQuerySignatures", "retryTimes", "
|
|
4
|
+
"sourcesContent": ["export enum FromStringToTokenError {\n FractionalMoreThan8Decimals,\n InvalidFormat,\n FractionalTooManyDecimals,\n}\n", "export const E8S_PER_TOKEN = BigInt(100000000);\n", "import { E8S_PER_TOKEN } from \"../constants/constants\";\nimport { FromStringToTokenError } from \"../enums/token.enums\";\n\nconst DECIMALS_CONVERSION_SUPPORTED = 8;\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\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 */\nconst convertStringToUlps = ({\n amount,\n decimals,\n}: {\n amount: string;\n decimals: number;\n}): bigint | FromStringToTokenError => {\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 ulps = 0n;\n const ulpsPerToken = 10n ** BigInt(decimals);\n\n if (integral) {\n try {\n ulps += BigInt(integral) * ulpsPerToken;\n } catch {\n return FromStringToTokenError.InvalidFormat;\n }\n }\n\n if (fractional) {\n if (fractional.length > decimals) {\n return FromStringToTokenError.FractionalTooManyDecimals;\n }\n try {\n ulps += BigInt(fractional.padEnd(decimals, \"0\"));\n } catch {\n return FromStringToTokenError.InvalidFormat;\n }\n }\n\n return ulps;\n};\n\nexport interface Token {\n symbol: string;\n name: string;\n decimals: number;\n logo?: string;\n}\n\n// TODO: Remove this token and use the value from ICP ledger\nexport const ICPToken: Token = {\n symbol: \"ICP\",\n name: \"Internet Computer\",\n decimals: 8,\n};\n\n/**\n * Deprecated. Use TokenAmountV2 instead which supports decimals !== 8.\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 if (token.decimals !== 8) {\n throw new Error(\"Use TokenAmountV2 for number of decimals other than 8\");\n }\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 // If parsing the number fails because of the number of decimals, we still\n // want the error to be about the number of decimals and not about the\n // parsing.\n if (token.decimals !== 8) {\n throw new Error(\"Use TokenAmountV2 for number of decimals other than 8\");\n }\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\n/**\n * Represents an amount of tokens.\n *\n * @param upls - The amount of tokens in units in the last place. If the token\n * supports N decimals, 10^N ulp = 1 token.\n * @param token - The token type.\n */\nexport class TokenAmountV2 {\n private constructor(\n protected ulps: bigint,\n public token: Token,\n ) {}\n\n /**\n * Initialize from a bigint. Bigint are considered ulps.\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 fromUlps({\n amount,\n token,\n }: {\n amount: bigint;\n token: Token;\n }): TokenAmountV2 {\n return new TokenAmountV2(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 }): TokenAmountV2 | FromStringToTokenError {\n const ulps = convertStringToUlps({ amount, decimals: token.decimals });\n\n if (typeof ulps === \"bigint\") {\n return new TokenAmountV2(ulps, token);\n }\n return ulps;\n }\n\n /**\n * Initialize from a number.\n *\n * 1 integer is considered 10^{token.decimals} ulps\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 }): TokenAmountV2 {\n const tokenAmount = TokenAmountV2.fromString({\n amount: amount.toFixed(\n Math.min(DECIMALS_CONVERSION_SUPPORTED, token.decimals),\n ),\n token,\n });\n if (tokenAmount instanceof TokenAmountV2) {\n return tokenAmount;\n }\n if (tokenAmount === FromStringToTokenError.FractionalTooManyDecimals) {\n throw new Error(\n `Number ${amount} has more than ${token.decimals} decimals`,\n );\n }\n\n // This should never happen\n throw new Error(`Invalid number ${amount}`);\n }\n\n /**\n *\n * @returns The amount of ulps.\n */\n public toUlps(): bigint {\n return this.ulps;\n }\n\n /**\n *\n * @returns The amount of ulps in e8s precision\n */\n public toE8s(): bigint {\n if (this.token.decimals < 8) {\n return this.ulps * 10n ** BigInt(8 - this.token.decimals);\n } else if (this.token.decimals === 8) {\n return this.ulps;\n } else {\n return this.ulps / 10n ** BigInt(this.token.decimals - 8);\n }\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\";\nimport { nonNullish } from \"./nullish.utils\";\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 HttpAgent.createSync({\n host: \"https://icp-api.io\",\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 * @param verifyQuerySignatures Check for signatures in the state tree signed by the node that replies to queries - i.e. certify responses.\n * @param retryTimes Set the number of retries the agent should perform before errorring.\n */\nexport const createAgent = async ({\n identity,\n host,\n fetchRootKey = false,\n verifyQuerySignatures = false,\n retryTimes,\n}: {\n identity: Identity;\n host?: string;\n fetchRootKey?: boolean;\n // @deprecated Shipped as an opt-in feature but, will become the default in next major version\n verifyQuerySignatures?: boolean;\n retryTimes?: number;\n}): Promise<HttpAgent> => {\n return await HttpAgent.create({\n identity,\n ...(nonNullish(host) && { host }),\n verifyQuerySignatures,\n ...(nonNullish(retryTimes) && { retryTimes }),\n shouldFetchRootKey: fetchRootKey,\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", "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};\n\nexport const asNonNullish = <T>(value: T, message?: string): NonNullable<T> => {\n assertNonNullish(value, message);\n return value;\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 | number[]) => {\n if (!(bytes instanceof Uint8Array)) {\n bytes = Uint8Array.from(bytes);\n }\n return bytes.reduce(\n (str, byte) => str + byte.toString(16).padStart(2, \"0\"),\n \"\",\n );\n};\n\nexport const candidNumberArrayToBigInt = (array: number[]): bigint => {\n let result = 0n;\n for (let i = array.length - 1; i >= 0; i--) {\n result = (result << 32n) + BigInt(array[i]);\n }\n return result;\n};\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", "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", "DECIMALS_CONVERSION_SUPPORTED", "convertStringToE8s", "value", "amount", "regexMatch", "integral", "fractional", "e8s", "E8S_PER_TOKEN", "convertStringToUlps", "decimals", "ulps", "ulpsPerToken", "ICPToken", "TokenAmount", "_TokenAmount", "token", "tokenAmount", "TokenAmountV2", "_TokenAmountV2", "Canister", "id", "service", "certifiedService", "certified", "Actor", "AnonymousIdentity", "HttpAgent", "isNullish", "argument", "nonNullish", "notEmptyString", "value", "defaultAgent", "HttpAgent", "AnonymousIdentity", "createAgent", "identity", "host", "fetchRootKey", "verifyQuerySignatures", "retryTimes", "nonNullish", "createServices", "canisterId", "serviceOverride", "certifiedServiceOverride", "agentOption", "callTransform", "queryTransform", "idlFactory", "certifiedIdlFactory", "agent", "defaultAgent", "service", "Actor", "certifiedService", "InvalidPercentageError", "NullishError", "assertNonNullish", "value", "message", "asNonNullish", "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", "candidNumberArrayToBigInt", "result", "i", "ALPHABET", "LOOKUP_TABLE", "i", "encodeBase32", "input", "skip", "bits", "output", "encodeByte", "byte", "decodeBase32", "o", "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", "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
|
}
|
|
@@ -7,3 +7,4 @@ export declare const arrayOfNumberToUint8Array: (numbers: Array<number>) => Uint
|
|
|
7
7
|
export declare const asciiStringToByteArray: (text: string) => Array<number>;
|
|
8
8
|
export declare const hexStringToUint8Array: (hexString: string) => Uint8Array;
|
|
9
9
|
export declare const uint8ArrayToHexString: (bytes: Uint8Array | number[]) => string;
|
|
10
|
+
export declare const candidNumberArrayToBigInt: (array: number[]) => bigint;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dfinity/utils",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.5.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",
|
|
@@ -47,8 +47,8 @@
|
|
|
47
47
|
"service-nervous-system"
|
|
48
48
|
],
|
|
49
49
|
"peerDependencies": {
|
|
50
|
-
"@dfinity/agent": "^
|
|
51
|
-
"@dfinity/candid": "^
|
|
52
|
-
"@dfinity/principal": "^
|
|
50
|
+
"@dfinity/agent": "^2.0.0",
|
|
51
|
+
"@dfinity/candid": "^2.0.0",
|
|
52
|
+
"@dfinity/principal": "^2.0.0"
|
|
53
53
|
}
|
|
54
54
|
}
|