wallet-kit / dist / index.js
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
import { $APP, shadow$provide } from "./shared.js";
import "./paylink.js";
var Ja,O,La,Ma,Na,Pa,Qa,Ra,Sa,Ta,Ua,Va,Wa,Xa,Ya,Za,$a,ab,db,eb,gb,hb,Q,nb,ub,vb,wb,xb,yb,zb,Ab,Bb,Cb,Db,Kb,Lb,Mb,Nb,Ob,Tb,Ub,Vb,Wb,Xb,Yb,Zb,$b,bc,cc,dc,R,ec,fc,hc,ic,jc,kc,S,T,lc,mc,nc,U,oc,qc,rc,tc,uc,vc,wc,bb,fb;Ja=function(a){return Promise.resolve(null).then(function(){return crypto.subtle.digest("SHA-256",a).then(function(b){return new Uint8Array(b)})})};O=function(a){return Ja($APP.w(a)).then(function(b){return $APP.y(b)})};La=function(a){var b=typeof a==="string";return b?$APP.Ka.test(a):b};
Ma=function(a){var b=typeof a==="number";return b?(b=Number.isInteger(a),$APP.h(b)?a>=1&&a<=0x4000000000000:b):b};Na=function(a,b){var c=typeof a==="number";return c?(c=Number.isInteger(a),$APP.h(c)?a>=0&&(b==null||a<=b+12E4):c):c};$APP.Oa=function(a){if($APP.K(a))return{banker:"~",code:"GAZ"};a=typeof a==="string"?a.match($APP.ua):null;if(a!=null){var b={};b.banker=a[1];b.code=a[2];return b}return null};$APP.P=function(a){a=$APP.Oa(a);return a!=null?a.banker:null};
Pa=function(a,b){if(typeof a!=="string")return"";a=a.replace($APP.Ia,"").trim();var c=Array.from(a);return c.length>b?c.slice(0,b).join(""):a};Qa=function(a){return Pa(a,128)};Ra=function(a){return Pa(a,140)};Sa=function(a){var b={v:1,t:"wpo"};b.id=a.id;b.cur=a.cur;b.amt=a.amt;b.seq=a.seq;b.from=a.from;b.to=a.to;b.ctx=a.ctx;b.memo=a.memo;b.ts=a.ts;b.exp=a.exp;return b};
Ta=function(a){if(a.t==="wrj"){var b={v:1,t:"wrj"};b.po=a.po;b.why=a.why;b.ts=a.ts;b.bank=a.bank;return b}b={v:1,t:"wrc"};b.po=a.po;b.seq=a.seq;b.ts=a.ts;b.bank=a.bank;return b};Ua=function(a){var b={v:1,t:"wri"};b.cur=a.cur;b.seq=a.seq;b.to=a.to;b.amt=a.amt;b.h=a.h;b.ts=a.ts;b.bank=a.bank;return b};Va=function(a){return""+$APP.v("wpay-ord")+"|v1|"+$APP.v($APP.N(Sa(a)))};Wa=function(a){return""+$APP.v("wpay-rcp")+"|v1|"+$APP.v($APP.N(Ta(a)))};Xa=function(a){return""+$APP.v("wpay-iss")+"|v1|"+$APP.v($APP.N(Ua(a)))};
Ya=function(a){return Promise.resolve(null).then(function(){return O($APP.N(Sa(a)))})};Za=function(a){return Promise.resolve(null).then(function(){return Ya(a.po).then(function(b){var c={v:1};c.t=a.t;c.bank=a.bank;c.oid=b;return O($APP.N(c))})})};$a=function(a){return Promise.resolve(null).then(function(){var b={v:1,t:"wri"};b.bank=a.bank;b.h=a.h;return O($APP.N(b))})};
ab=function(a,b){try{var c=typeof b==="number"?b:Date.now();for(b=0;;){if(a==null||b>8)return!1;var d=a.exp;if(typeof d==="number")return c>d;var e=b+1;a=a.po;b=e}}catch(f){return!1}};
$APP.cb=function(a,b){try{if($APP.B(a)&&13===$APP.C(a)&&1===a.v&&"wpo"===a.t&&$APP.D(a)<=4096){var c=a.id,d=a.cur,e=a.amt,f=a.seq,m=a.from,p=a.to,g=a.ctx,k=a.memo,q=a.ts,n=a.exp,l=a.sig;if($APP.r(function(){var t=typeof c==="string";return t?(t=bb.test(c),$APP.h(t)?(t=$APP.M(d),$APP.h(t)?(t=$APP.F(e),$APP.h(t)?(t=Ma(f),$APP.h(t)?(t=$APP.G(m),$APP.h(t)?(t=$APP.G(p),$APP.h(t)?(t=$APP.J(g,128))?(t=$APP.J(k,140))?(t=Na(q,$APP.I(b)),$APP.h(t)?(t=typeof n==="number")?(t=Number.isInteger(n),$APP.h(t)?(t=
n>q)?(t=n<=q+7776E6)?$APP.H(l):t:t:t):t:t):t:t:t):t):t):t):t):t):t}()))return null;var x=Object.assign({},Sa(a));x.sig=l;return x}return null}catch(t){return null}};db=function(a){return typeof a==="string"&&a!==""&&$APP.J(a,128)};eb=function(a){return typeof a==="string"&&a!==""&&$APP.J(a,128)};
gb=function(a,b){try{var c=$APP.B(a)?a.t:null,d=c==="wrc";c=c==="wrj";if($APP.B(a)&&7===$APP.C(a)&&1===a.v&&(d||c)&&$APP.D(a)<=8192){var e=a.bank,f=a.bsig,m=a.ts,p=a.seq,g=a.why,k=$APP.I(b),q=$APP.cb(a.po,k);if($APP.r(function(){var l=$APP.G(e);return $APP.h(l)?(l=$APP.H(f),$APP.h(l)?(l=Na(m,k),$APP.h(l)?(l=d?db(p):typeof g==="string"&&fb.indexOf(g)>=0)?q!=null&&$APP.P(q.cur)===e&&m>=q.ts-12E4:l:l):l):l}()))return null;var n=Object.assign({},d?function(){var l={v:1,t:"wrc"};l.po=q;l.seq=p;l.ts=m;
l.bank=e;return l}():function(){var l={v:1,t:"wrj"};l.po=q;l.why=g;l.ts=m;l.bank=e;return l}());n.bsig=f;return n}return null}catch(l){return null}};
hb=function(a,b){try{if($APP.B(a)&&10===$APP.C(a)&&1===a.v&&"wri"===a.t&&$APP.D(a)<=4096){var c=a.cur,d=a.seq,e=a.to,f=a.amt,m=a.h,p=a.ts,g=a.bank,k=a.bsig;if($APP.r(function(){var n=$APP.M(c);return $APP.h(n)?(n=Ma(d),$APP.h(n)?(n=$APP.G(e),$APP.h(n)?(n=$APP.F(f),$APP.h(n)?(n=eb(m))?(n=Na(p,$APP.I(b)),$APP.h(n)?(n=$APP.G(g),$APP.h(n)?(n=$APP.P(c)===g)?$APP.H(k):n:n):n):n:n):n):n):n}()))return null;var q=Object.assign({},Ua(a));q.bsig=k;return q}return null}catch(n){return null}};
Q=function(a){throw Error("wallet-kit: "+$APP.v(a));};
$APP.ib=function(a,b){return Promise.resolve(null).then(function(){var c=b.cur,d=b.amt,e=b.tox,f=a.publicKeyB64,m=b.expMs,p=m===void 0?Date.now()+36E5:m;$APP.K(c)&&Q("the neutral unit is quote-only — nobody can mint or settle it");$APP.h($APP.M(c))||Q("bad currency id");$APP.h($APP.F(d))||Q("amt must be an integer in minor units, 1..2^50");$APP.h($APP.G(e))||Q("tox must be the payee's suite X25519 public key");$APP.h($APP.G(f))||Q("identity has no usable public key");$APP.h(function(){var k=typeof p===
"number";return k?(k=Number.isInteger(p),$APP.h(k)?p>0&&p<=Date.now()+7776E6:k):k}())||Q("expMs out of range");var g=function(){var k={v:1,t:"wpr"};k.cur=c;k.amt=d;k.to=f;k.tox=e;k.ctx=Qa(b.ctx);k.memo=Ra(b.memo);k.exp=p;return k}();return a.signRaw($APP.w($APP.wa(g))).then(function(k){var q=Object.assign({},g);q.sig=$APP.y(k);return q})})};
$APP.jb=function(a,b){return Promise.resolve(null).then(function(){var c=b.cur,d=b.amt,e=b.to,f=b.seq,m=a.publicKeyB64,p=b.ttlMs,g=p===void 0?6E5:p;$APP.K(c)&&Q("the neutral unit is quote-only — an order cannot be denominated in it");$APP.h($APP.M(c))||Q("bad currency id");$APP.h($APP.F(d))||Q("amt must be an integer in minor units, 1..2^50");$APP.h($APP.G(e))||Q("to must be the payee's identity public key");$APP.h($APP.G(m))||Q("identity has no usable public key");$APP.h(Ma(f))||Q("seq must be a positive integer");
$APP.h(function(){var n=typeof g==="number";return n?(n=Number.isInteger(g),$APP.h(n)?g>0&&g<=7776E6:n):n}())||Q("ttlMs out of range");var k=Date.now(),q=function(){var n={v:1,t:"wpo"};n.id=$APP.y($APP.aa(16));n.cur=c;n.amt=d;n.seq=f;n.from=m;n.to=e;n.ctx=Qa(b.ctx);n.memo=Ra(b.memo);n.ts=k;n.exp=k+g;return n}();return a.signRaw($APP.w(Va(q))).then(function(n){var l=Object.assign({},q);l.sig=$APP.y(n);return l})})};
nb=function(a,b){return Promise.resolve(null).then(function(){var c=$APP.cb(a,b);return c==null?null:$APP.A(c.from,c.sig,$APP.w(Va(c))).then(function(d){return $APP.h(d)?c:null})}).catch(function(){return null})};
$APP.ob=function(a,b,c){return Promise.resolve(null).then(function(){return nb(b,void 0).then(function(d){var e=c===void 0?{}:c,f=a.publicKeyB64,m=e.decline,p=e.seq,g=Date.now();d==null&&Q("the order does not verify — nothing to settle");$APP.h($APP.G(f))||Q("identity has no usable public key");$APP.P(d.cur)!==f&&Q("this identity is not the banker of that currency");e=m!==void 0;!e||typeof m==="string"&&fb.indexOf(m)>=0||Q("unknown decline reason");e||db(p)||Q("seq must be the bank's log entry reference");
var k=e?function(){var q={v:1,t:"wrj"};q.po=d;q.why=m;q.ts=g;q.bank=f;return q}():function(){var q={v:1,t:"wrc"};q.po=d;q.seq=p;q.ts=g;q.bank=f;return q}();return a.signRaw($APP.w(Wa(k))).then(function(q){var n=Object.assign({},k);n.bsig=$APP.y(q);return n})})})};
$APP.pb=function(a,b,c){return Promise.resolve(null).then(function(){var d=gb(a,c),e=d!=null?d.bank:null;if(d==null||b!==void 0&&b!=null&&b!==e)return null;var f=d.po;return $APP.A(f.from,f.sig,$APP.w(Va(f))).then(function(m){return $APP.r(m)?null:$APP.A(e,d.bsig,$APP.w(Wa(d))).then(function(p){return $APP.h(p)?d:null})})}).catch(function(){return null})};
$APP.qb=function(a,b){return Promise.resolve(null).then(function(){var c=b.cur,d=b.seq,e=b.to,f=b.amt,m=b.h,p=a.publicKeyB64,g=b.ts,k=g===void 0?Date.now():g;$APP.K(c)&&Q("the neutral unit is quote-only — nobody can mint it");$APP.h($APP.M(c))||Q("bad currency id");$APP.h($APP.G(p))||Q("identity has no usable public key");$APP.P(c)!==p&&Q("this identity is not the banker of that currency");$APP.h(Ma(d))||Q("seq must be the bank's issuance slot, a positive integer");$APP.h($APP.G(e))||Q("to must be the recipient's identity public key");
$APP.h($APP.F(f))||Q("amt must be an integer in minor units, 1..2^50");eb(m)||Q("h must be the mint entry's log hash, a non-empty string");$APP.h(function(){var n=typeof k==="number";return n?(n=Number.isInteger(k),$APP.h(n)?k>=0:n):n}())||Q("ts must be a non-negative integer epoch-ms");var q=function(){var n={v:1,t:"wri"};n.cur=c;n.seq=d;n.to=e;n.amt=f;n.h=m;n.ts=k;n.bank=p;return n}();return a.signRaw($APP.w(Xa(q))).then(function(n){var l=Object.assign({},q);l.bsig=$APP.y(n);return l})})};
$APP.rb=function(a,b,c){return Promise.resolve(null).then(function(){var d=hb(a,c),e=d!=null?d.bank:null;return d==null||b!==void 0&&b!=null&&b!==e?null:$APP.A(e,d.bsig,$APP.w(Xa(d))).then(function(f){return $APP.h(f)?d:null})}).catch(function(){return null})};$APP.sb=function(){return Promise.resolve(null).then(function(){var a=$APP.y($APP.aa(32));return O(a).then(function(b){var c={};c.pre=a;c.hash=b;return c})})};
$APP.tb=function(a,b){return Promise.resolve(null).then(function(){return $APP.r(function(){var c=La(a);return $APP.h(c)?La(b):c}())?!1:O(a).then(function(c){return c===b})}).catch(function(){return!1})};ub=function(a){var b={v:1,t:"wlk"};b.id=a.id;b.cur=a.cur;b.amt=a.amt;b.seq=a.seq;b.from=a.from;b.to=a.to;b.hash=a.hash;b.ctx=a.ctx;b.memo=a.memo;b.ts=a.ts;b.exp=a.exp;return b};vb=function(a){var b={v:1,t:"wlr"};b.lk=a.lk;b.seq=a.seq;b.ts=a.ts;b.bank=a.bank;return b};
wb=function(a){var b={v:1,t:"wrl"};b.cur=a.cur;b.lh=a.lh;b.to=a.to;b.ts=a.ts;return b};xb=function(a){return""+$APP.v("wpay-lock")+"|v1|"+$APP.v($APP.N(ub(a)))};yb=function(a){return""+$APP.v("wpay-rcp")+"|v1|"+$APP.v($APP.N(vb(a)))};zb=function(a){return""+$APP.v("wpay-rel")+"|v1|"+$APP.v($APP.N(wb(a)))};Ab=function(a){return Promise.resolve(null).then(function(){return O($APP.N(ub(a)))})};
Bb=function(a,b){try{if($APP.B(a)&&14===$APP.C(a)&&1===a.v&&"wlk"===a.t&&$APP.D(a)<=4096){var c=a.id,d=a.cur,e=a.amt,f=a.seq,m=a.from,p=a.to,g=a.hash,k=a.ctx,q=a.memo,n=a.ts,l=a.exp,x=a.sig;if($APP.r(function(){var u=typeof c==="string";return u?(u=bb.test(c),$APP.h(u)?(u=$APP.M(d),$APP.h(u)?(u=$APP.F(e),$APP.h(u)?(u=Ma(f),$APP.h(u)?(u=$APP.G(m),$APP.h(u)?(u=$APP.G(p),$APP.h(u)?(u=La(g),$APP.h(u)?(u=$APP.J(k,128))?(u=$APP.J(q,140))?(u=Na(n,$APP.I(b)),$APP.h(u)?(u=typeof l==="number")?(u=Number.isInteger(l),
$APP.h(u)?(u=l>n)?(u=l<=n+7776E6)?$APP.H(x):u:u:u):u:u):u:u:u):u):u):u):u):u):u):u}()))return null;var t=Object.assign({},ub(a));t.sig=x;return t}return null}catch(u){return null}};
Cb=function(a,b){try{if($APP.B(a)&&7===$APP.C(a)&&1===a.v&&"wlr"===a.t&&$APP.D(a)<=8192){var c=a.bank,d=a.bsig,e=a.ts,f=a.seq,m=$APP.I(b),p=Bb(a.lk,m);if($APP.r(function(){var k=$APP.G(c);return $APP.h(k)?(k=$APP.H(d),$APP.h(k)?(k=Na(e,m),$APP.h(k)?db(f)&&p!=null&&$APP.P(p.cur)===c&&e>=p.ts-12E4:k):k):k}()))return null;var g=Object.assign({},function(){var k={v:1,t:"wlr"};k.lk=p;k.seq=f;k.ts=e;k.bank=c;return k}());g.bsig=d;return g}return null}catch(k){return null}};
Db=function(a,b){try{if($APP.B(a)&&7===$APP.C(a)&&1===a.v&&"wrl"===a.t&&$APP.D(a)<=4096){var c=a.cur,d=a.lh,e=a.to,f=a.ts,m=a.sig;if($APP.r(function(){var g=$APP.M(c);return $APP.h(g)?(g=eb(d))?(g=$APP.G(e),$APP.h(g)?(g=Na(f,$APP.I(b)),$APP.h(g)?$APP.H(m):g):g):g:g}()))return null;var p=Object.assign({},wb(a));p.sig=m;return p}return null}catch(g){return null}};
$APP.Eb=function(a,b){return Promise.resolve(null).then(function(){var c=b.cur,d=b.amt,e=b.to,f=b.seq,m=b.hash,p=a.publicKeyB64,g=b.ttlMs,k=g===void 0?6E5:g;$APP.K(c)&&Q("the neutral unit is quote-only — a lock cannot be denominated in it");$APP.h($APP.M(c))||Q("bad currency id");$APP.h($APP.F(d))||Q("amt must be an integer in minor units, 1..2^50");$APP.h($APP.G(e))||Q("to must be the beneficiary's identity public key");$APP.h($APP.G(p))||Q("identity has no usable public key");$APP.h(Ma(f))||Q("seq must be a positive integer");
$APP.h(La(m))||Q("hash must be a canonical base64url sha256 digest");$APP.h(function(){var l=typeof k==="number";return l?(l=Number.isInteger(k),$APP.h(l)?k>0&&k<=7776E6:l):l}())||Q("ttlMs out of range");var q=Date.now(),n=function(){var l={v:1,t:"wlk"};l.id=$APP.y($APP.aa(16));l.cur=c;l.amt=d;l.seq=f;l.from=p;l.to=e;l.hash=m;l.ctx=Qa(b.ctx);l.memo=Ra(b.memo);l.ts=q;l.exp=q+k;return l}();return a.signRaw($APP.w(xb(n))).then(function(l){var x=Object.assign({},n);x.sig=$APP.y(l);return x})})};
$APP.Fb=function(a,b){return Promise.resolve(null).then(function(){var c=Bb(a,b);return c==null?null:$APP.A(c.from,c.sig,$APP.w(xb(c))).then(function(d){return $APP.h(d)?c:null})}).catch(function(){return null})};
$APP.Gb=function(a,b,c){return Promise.resolve(null).then(function(){return $APP.Fb(b,void 0).then(function(d){var e=a.publicKeyB64,f=(c===void 0?{}:c).seq,m=Date.now();d==null&&Q("the lock does not verify — nothing to receipt");$APP.h($APP.G(e))||Q("identity has no usable public key");$APP.P(d.cur)!==e&&Q("this identity is not the banker of that currency");db(f)||Q("seq must be the bank's log entry reference");var p=function(){var g={v:1,t:"wlr"};g.lk=d;g.seq=f;g.ts=m;g.bank=e;return g}();return a.signRaw($APP.w(yb(p))).then(function(g){var k=
Object.assign({},p);k.bsig=$APP.y(g);return k})})})};$APP.Hb=function(a,b,c){return Promise.resolve(null).then(function(){var d=Cb(a,c),e=d!=null?d.bank:null;if(d==null||b!==void 0&&b!=null&&b!==e)return null;var f=d.lk;return $APP.A(f.from,f.sig,$APP.w(xb(f))).then(function(m){return $APP.r(m)?null:$APP.A(e,d.bsig,$APP.w(yb(d))).then(function(p){return $APP.h(p)?d:null})})}).catch(function(){return null})};
$APP.Ib=function(a,b){return Promise.resolve(null).then(function(){var c=b.cur,d=b.lh,e=a.publicKeyB64,f=b.ts,m=f===void 0?Date.now():f;$APP.K(c)&&Q("the neutral unit is quote-only — nothing can be locked in it");$APP.h($APP.M(c))||Q("bad currency id");eb(d)||Q("lh must be the lock entry's log hash, a non-empty string");$APP.h($APP.G(e))||Q("identity has no usable public key");$APP.h(function(){var g=typeof m==="number";return g?(g=Number.isInteger(m),$APP.h(g)?m>=0:g):g}())||Q("ts must be a non-negative integer epoch-ms");
var p=function(){var g={v:1,t:"wrl"};g.cur=c;g.lh=d;g.to=e;g.ts=m;return g}();return a.signRaw($APP.w(zb(p))).then(function(g){var k=Object.assign({},p);k.sig=$APP.y(g);return k})})};$APP.Jb=function(a,b,c){return Promise.resolve(null).then(function(){var d=Db(a,c),e=d!=null?d.to:null;return d==null||b!==void 0&&b!=null&&b!==e?null:$APP.A(e,d.sig,$APP.w(zb(d))).then(function(f){return $APP.h(f)?d:null})}).catch(function(){return null})};Kb=function(a){return a!=null&&typeof a==="object"&&$APP.r(Array.isArray(a))};
Lb=function(a){var b=typeof a==="string";return b?$APP.Ka.test(a):b};Mb=function(a,b,c,d,e){a=a[b];if($APP.h(Array.isArray(a))){b=a.length;for(var f=0;;)if(f<b){var m=a[f],p=m!=null?m.k:null,g=m!=null?m.o:null;m=m!=null?gb(m.a,null):null;var k=Lb(p);$APP.h(k)&&(k=Lb(g),k=$APP.h(k)?m!=null&&m.t===c:k);$APP.h(k)&&(d.set(p,m),e.set(p,g));f+=1}else break}};
Nb=function(a,b){var c=typeof a==="string";return c?(c=$APP.ra.test(a),a=$APP.h(c)?c:a==="~",$APP.h(a)?(a=typeof b==="number")?(a=Number.isInteger(b),$APP.h(a)?b>=0&&b<=0x4000000000000:a):a:a):c};Ob=function(a,b){a=a.seqs;if(a===void 0)return!0;if(Kb(a))for(var c=Object.keys(a),d=0;;){if(d>=c.length)return!0;var e=c[d],f=a[e];if($APP.h(Nb(e,f)))b[e]=f,d+=1;else return!1}else return!1};
Tb=function(a){var b={state:"absent",raw:null,snap:null};try{var c=localStorage.getItem(a._key);if(typeof c==="string"){b.raw=c;var d=JSON.parse(c);if(Kb(d)&&1===d.v)if(a={},a.receipts=new Map,a.declines=new Map,a.pending=new Map,a.issuance=new Map,a.oidOf=new Map,a.seqs={},a.stakes=null,a.extra={},Ob(d,a.seqs)){Mb(d,"receipts","wrc",a.receipts,a.oidOf);Mb(d,"declines","wrj",a.declines,a.oidOf);var e=a.pending,f=d.pending;if($APP.h(Array.isArray(f))){var m=f.length;for(c=0;;)if(c<m){var p=f[c],g=
p!=null?p.k:null,k=p!=null?$APP.cb(p.a,null):null,q=Lb(g);$APP.h($APP.h(q)?k!=null:q)&&e.set(g,k);c+=1}else break}var n=a.issuance,l=d.issuance;if($APP.h(Array.isArray(l))){var x=l.length;for(e=0;;)if(e<x){var t=l[e],u=t!=null?t.k:null,Fa=t!=null?hb(t.a,null):null,E=Lb(u);$APP.h($APP.h(E)?Fa!=null:E)&&n.set(u,Fa);e+=1}else break}var kb=a.extra,Ga=Object.keys(d);n={left:65536};var lb=Ga.length;for(l=0;;)if(l<lb){var da=Ga[l];if(!(Pb.indexOf(da)>=0)){var ea=d[da];try{var Ha=JSON.stringify(ea);var Qb=
typeof Ha==="string"?Ha.length:Number.MAX_SAFE_INTEGER}catch(sc){Qb=Number.MAX_SAFE_INTEGER}var Rb=Qb+da.length+4;Rb<=n.left&&(n.left-=Rb,kb[da]=ea)}l+=1}else break;var Sb=d.stakes;$APP.h(Array.isArray(Sb))&&(a.stakes=Sb);var mb=a}else mb=null;else mb=null;d=mb;d!=null?(b.state="ok",b.snap=d):b.state="bad"}}catch(sc){b.state=typeof b.raw==="string"?"bad":"off"}return b};Ub=function(a){return""+$APP.v(a.from)+"|"+$APP.v($APP.P(a.cur))+"|"+$APP.v(a.seq)};
Vb=function(a,b,c,d){b.add(Ub(a));a.from===d&&(b=$APP.P(a.cur),a=a.seq,d=c[b],b!=null&&a>(typeof d==="number"?d:0)&&(c[b]=a))};Wb=function(a,b,c,d,e,f){for(var m=Array.from(a.keys()),p=m.length,g=0;;)if(g<p){var k=m[g],q=b.get(k);$APP.h(Lb(q))&&c.add(q);Vb(a.get(k).po,d,e,f);g+=1}else break};
Xb=function(a){var b=new Set,c=new Set,d=a._seqs,e=a.idPub,f=a._oidOf,m=a._pending;Wb(a._receipts,f,b,c,d,e);Wb(a._declines,f,b,c,d,e);f=Array.from(m.keys());for(var p=f.length,g=0;;)if(g<p){var k=f[g];$APP.h(b.has(k))?m.delete(k):Vb(m.get(k),c,d,e);g+=1}else break;a._oids=b;a._slots=c};
Yb=function(a,b,c,d,e,f){for(var m=Array.from(b.keys()),p=m.length,g=0;;)if(g<p){var k=m[g];$APP.h(function(){var q=a.has(k);return $APP.h(q)?q:(q=f!=null)?f.has(""+$APP.v(e)+$APP.v(k)):q}())||(a.set(k,b.get(k)),$APP.h(function(){var q=c!=null;return q?d.has(k):q}())&&c.set(k,d.get(k)));g+=1}else break};
Zb=function(a,b,c){Yb(a._receipts,b.receipts,a._oidOf,b.oidOf,"wrc|",c);Yb(a._declines,b.declines,a._oidOf,b.oidOf,"wrj|",c);Yb(a._pending,b.pending,null,null,"pending|",c);Yb(a._issuance,b.issuance,null,null,"wri|",c);c=a._seqs;for(var d=b.seqs,e=Object.keys(d),f=e.length,m=0;;)if(m<f){var p=e[m],g=d[p],k=c[p];g>(typeof k==="number"?k:0)&&(c[p]=g);m+=1}else break;c=b.stakes;a._stakes=$APP.h(Array.isArray(c))?c:[];a._extra=b.extra};
$b=function(a,b,c){var d={};d.name=b;d.message=c;d.ts=Date.now();a.storageError=d;try{var e=a.onStorageError;e.g?e.g(d):e.call(null,d)}catch(f){}return!1};bc=function(a){var b=a._key;var c=ac.get(b);$APP.h(c)?b=c:(c=new Set,ac.set(b,c),b=c);b.add(a)};cc=function(a){var b=ac.get(a._key);if(b!=null){b=Array.from(b.values());for(var c=b.length,d=0;;)if(d<c){var e=b[d];if(e!==a){e._stale=!0;try{var f=e.onChange;f.i?f.i():f.call(null)}catch(m){}}d+=1}else break}};
dc=function(a){a._receipts=new Map;a._declines=new Map;a._pending=new Map;a._issuance=new Map;a._oidOf=new Map;a._oids=new Set;a._slots=new Set;a._seqs={};a._stakes=[];a._extra={};a.unreadable=null;a._dirty=!1;var b=Tb(a),c=b.state;c==="ok"?(Zb(a,b.snap,null),a.storageError=null):c==="bad"?(a.unreadable=b.raw,$b(a,"UnreadableStorageError","stored ledger could not be read; its bytes are in `unreadable` and will not be overwritten until acknowledgeUnreadable()")):c==="off"?$b(a,"StorageUnavailableError",
"localStorage could not be read"):a.storageError=null;Xb(a)};R=function(a){if($APP.h(!!a._stale)){if($APP.h(!!a._dirty)){var b=Tb(a),c=b.state;c==="ok"&&(Zb(a,b.snap,null),a.unreadable=null,a.storageError=null);c==="bad"&&(a.unreadable=b.raw);Xb(a)}else dc(a);a._stale=!1}};
ec=function(a){try{var b=globalThis;if(typeof b.addEventListener==="function"){var c=function(d){try{var e=d.key;if(e==null||e===a._key){a._stale=!0;try{var f=a.onChange;return f.i?f.i():f.call(null)}catch(m){return null}}else return null}catch(m){return null}};a._onStorage=c;b.addEventListener("storage",c)}}catch(d){}};
fc=function(a){function b(q){return Array.from(q.entries()).map(function(n){var l={};l.k=n[0];l.o=d.get(n[0]);l.a=n[1];return l})}function c(q){return Array.from(q.entries()).map(function(n){var l={};l.k=n[0];l.a=n[1];return l})}for(var d=a._oidOf,e=function(){var q={v:1};q.receipts=b(a._receipts);q.declines=b(a._declines);q.pending=c(a._pending);q.issuance=c(a._issuance);q.seqs=a._seqs;q.stakes=a._stakes;return q}(),f=a._extra,m=Object.keys(f),p=m.length,g=0;;)if(g<p){var k=m[g];Pb.indexOf(k)>=0||
(e[k]=f[k]);g+=1}else break;return e};hc=function(a){a._dirty=!0};ic=function(a,b){a:{try{var c=localStorage.getItem(a._key);var d=typeof c==="string"?c:null;break a}catch(e){}d=void 0}return d===void 0||d===b};jc=function(a,b){try{return localStorage.setItem(a._key,b),a.storageError=null,!0}catch(d){var c=d;return $b(a,function(){try{var e=c.name;return $APP.h(e)?e:"Error"}catch(f){return"Error"}}(),function(){try{var e=c.message;return $APP.h(e)?e:""+$APP.v(c)}catch(f){return""}}())}};
kc=function(a){if($APP.h(!!a._closed))return hc(a),$b(a,"StoreClosedError","this LedgerStore has been closed; it no longer writes to localStorage");if(jc(a,JSON.stringify(fc(a))))return a._dirty=!1,!0;hc(a);return!1};
S=function(a,b){if($APP.h(!!a._closed))return hc(a),$b(a,"StoreClosedError","this LedgerStore has been closed; it no longer writes to localStorage");for(var c=0;;){var d=a.unreadable!=null?null:Tb(a);if(d!=null){var e=d.state;e==="ok"&&Zb(a,d.snap,b);e==="bad"&&(a.unreadable=d.raw)}Xb(a);a._stale=!1;if(a.unreadable!=null)return hc(a),$b(a,"UnreadableStorageError","stored ledger could not be read; its bytes are in `unreadable` and will not be overwritten until acknowledgeUnreadable()");var f=d!=null?
d.raw:null;d=JSON.stringify(fc(a));if((e=c>=7)||ic(a,f))if(f=kc(a),!f||e||ic(a,d))return f&&cc(a),f;c+=1}};T=function(a){try{var b=a.onChange;b.i?b.i():b.call(null)}catch(c){}};lc=function(a,b){return Promise.resolve(null).then(function(){var c=$APP.cb(b,void 0);return c==null?0:Ya(c).then(function(d){var e=a._pending;var f=e.has(d);$APP.h(f)||(f=a._oids.has(d),f=$APP.h(f)?f:a._slots.has(Ub(c)));if($APP.h(f))return 0;e.set(d,c);d=S(a,null);T(a);return $APP.h(d)?1:2})}).catch(function(){return 0})};
mc=function(a,b,c){return Promise.resolve(null).then(function(){var d=gb(b,void 0);return d==null||d.t!==c?0:Za(d).then(function(e){return Ya(d.po).then(function(f){var m=a[c==="wrc"?"_receipts":"_declines"];if($APP.h(m.has(e)))return 0;m.set(e,d);a._oidOf.set(e,f);f=S(a,null);T(a);return $APP.h(f)?1:2})})}).catch(function(){return 0})};
nc=function(a,b){return Promise.resolve(null).then(function(){var c=hb(b,void 0);return c==null||c.to!==a.idPub?0:$a(c).then(function(d){var e=a._issuance;if($APP.h(e.has(d)))return 0;e.set(d,c);d=S(a,null);T(a);return $APP.h(d)?1:2})}).catch(function(){return 0})};U=function(a){return Array.from(a.values())};oc=function(a){try{return BigInt(Number(a))===a}catch(b){return!1}};
qc=function(a,b){function c(l){var x=d[l];return x===void 0?(x={settled:0,held:0,available:0},x.settledExact=pc,x.heldExact=pc,x.availableExact=pc,x.exact=!0,d[l]=x):x}R(a);var d={},e=a.idPub;b=typeof b==="number"?b:Date.now();for(var f=U(a._receipts),m=U(a._pending),p=f.length,g=0;;)if(g<p){var k=f[g].po,q=c(k.cur),n=BigInt(k.amt);k.to===e&&(q.settledExact+=n);k.from===e&&(q.settledExact-=n);g+=1}else break;a=U(a._issuance);f=a.length;for(p=0;;)if(p<f)g=a[p],g.to===e&&(k=c(g.cur),k.settledExact+=
BigInt(g.amt)),p+=1;else break;a=m.length;for(f=0;;)if(f<a)p=m[f],g=c(p.cur),p.from!==e||ab(p,b-12E4)||(g.heldExact+=BigInt(p.amt)),f+=1;else break;e=Object.keys(d);b=e.length;for(m=0;;)if(m<b)a=d[e[m]],f=a.settledExact,p=a.heldExact,g=f-p,a.availableExact=g,a.settled=Number(f),a.held=Number(p),a.available=Number(g),a.exact=oc(f)&&oc(p)&&oc(g),m+=1;else break;return d};
rc=function(a,b){return Promise.resolve(null).then(function(){var c=$APP.P(b);if(!$APP.h($APP.M(b)))throw Error("wallet-kit: reserveSeq needs a payable currency id");S(a,null);var d=a._seqs,e=d[c];e=(typeof e==="number"?e:0)+1;if(e>0x4000000000000)throw Error("wallet-kit: this bank's sequence space is exhausted — no slot left that an order may carry");d[c]=e;c=S(a,null);T(a);if(!c)throw c=a.storageError,Error("wallet-kit: reserveSeq could not persist slot "+$APP.v(e)+" ("+$APP.v(c!=null?c.name:"unknown")+
"); it is NOT safe to sign an order against an unrecorded slot");return e})};tc=function(a,b){a=a.idPub;return b.from===a||b.to===a};
uc=function(a,b,c,d){function e(f){f!==0&&(d.n+=1);return null}return c==="pending"?nb(b,void 0).then(function(f){return f!=null&&tc(a,f)?lc(a,f).then(function(m){return e(m)}):null}):c==="wri"?$APP.rb(b,void 0,void 0).then(function(f){return f==null||f.to!==a.idPub?null:nc(a,f).then(function(m){return e(m)})}):$APP.pb(b,void 0,void 0).then(function(f){return f!=null&&f.t===c&&tc(a,f.po)?mc(a,f,c).then(function(m){return e(m)}):null})};
vc=function(a,b){return Promise.resolve(null).then(function(){try{var c=typeof b==="string"?JSON.parse(b):b}catch(e){c=null}var d={n:0};return Kb(c)&&1===c.v&&c.idPub===a.idPub?V(a,c.receipts,0,"wrc",d).then(function(){return V(a,c.declines,0,"wrj",d).then(function(){return V(a,c.pending,0,"pending",d).then(function(){return V(a,c.issuance,0,"wri",d).then(function(){var e=c.seqs,f={b:!1};if(Kb(e))for(var m=a._seqs,p=Object.keys(e),g=p.length,k=0;;)if(k<g){var q=p[k],n=e[q],l=m[q],x=Nb(q,n);$APP.h($APP.h(x)?
n>(typeof l==="number"?l:0):x)&&(m[q]=n,f.b=!0);k+=1}else break;$APP.h(!!f.b)&&(S(a,null),T(a));return d.n})})})}):0}).catch(function(){return 0})};wc=function(a,b,c,d){for(var e=Array.from(a.keys()),f=e.length,m=0;;)if(m<f){var p=e[m];$APP.h(!!function(){var g=a.get(p);return b.j?b.j(g,c):b.call(null,g,c)}())||d.push(function(){var g={};g.m=a;g.k=p;g.d=""+$APP.v(c)+"|"+$APP.v(p);return g}());m+=1}else break};bb=/^[A-Za-z0-9_-]{21}[AQgw]$/;$APP.Ka=/^[A-Za-z0-9_-]{42}[AEIMQUYcgkosw048]$/;
fb=["insufficient","unknown-payer","expired","cur","seq"];var Pb,ac,pc,V,W;Pb="v receipts declines pending issuance seqs stakes".split(" ");$APP.xc=class{constructor(a){this.idPub=a;this._key=""+$APP.v("wal:")+$APP.v(a);this.onChange=function(){};this.onStorageError=function(){};this._onStorage=this.unreadable=this.storageError=null;this._closed=this._stale=this._dirty=!1;dc.g?dc.g(this):dc.call(null,this);ec.g?ec.g(this):ec.call(null,this);bc.g?bc.g(this):bc.call(null,this)}};ac=new Map;pc=BigInt(0);
V=function V(a,b,c,d,e){return $APP.r(Array.isArray(b))||c>=b.length?Promise.resolve(null):uc(a,b[c],d,e).catch(function(){return null}).then(function(){var m=c+1;return V.l?V.l(a,b,m,d,e):V.call(null,a,b,m,d,e)})};W=$APP.xc.prototype;W.load=function(){dc(this);T(this)};W.balances=function(a){return qc(this,a)};W.addOrder=function(a){return lc(this,a)};W.applyReceipt=function(a){return mc(this,a,"wrc")};W.applyDecline=function(a){return mc(this,a,"wrj")};
W.applyIssuance=function(a){return nc(this,a)};W.issuances=function(){R(this);return U(this._issuance)};W.pendingOrders=function(){R(this);return U(this._pending)};W.expiredOrders=function(a){R(this);a=typeof a==="number"?a:Date.now();for(var b=[],c=U(this._pending),d=c.length,e=0;;)if(e<d){var f=c[e];ab(f,a-12E4)&&b.push(f);e+=1}else break;return b};W.receipts=function(){R(this);return U(this._receipts)};W.declines=function(){R(this);return U(this._declines)};
W.nextSeq=function(a){R(this);a=$APP.P(a);a==null?a=1:(a=this._seqs[a],a=(typeof a==="number"?a:0)+1);return a};W.reserveSeq=function(a){return rc(this,a)};W.exportJson=function(){R(this);var a=JSON,b=a.stringify,c={v:1};c.idPub=this.idPub;c.receipts=U(this._receipts);c.declines=U(this._declines);c.pending=U(this._pending);c.issuance=U(this._issuance);c.seqs=this._seqs;c.stakes=this._stakes;return b.call(a,c)};W.importJson=function(a){return vc(this,a)};
W.prune=function(a){R(this);var b=[];wc(this._receipts,a,"wrc",b);wc(this._declines,a,"wrj",b);wc(this._pending,a,"pending",b);wc(this._issuance,a,"wri",b);a=new Set;for(var c=b.length,d=0;;)if(d<c){var e=b[d];e.m.delete(e.k);this._oidOf.delete(e.k);a.add(e.d);d+=1}else break;b.length>0&&(S(this,a),T(this));return b.length};W.acknowledgeUnreadable=function(){if(this.unreadable==null)var a=!1;else this.storageError=this.unreadable=null,Xb(this),(a=kc(this))&&cc(this),T(this);return a};
W.close=function(){try{var a=this._onStorage,b=globalThis;a!=null&&typeof b.removeEventListener==="function"&&b.removeEventListener("storage",a)}catch(c){}this._onStorage=null;a=this._key;b=ac.get(a);b!=null&&(b.delete(this),b.size===0&&ac.delete(a));this._closed=!0};export const orderPreimage=Va;export const unsignedLock=ub;export const releaseShape=Db;export const receiptKey=Za;export const orderShape=$APP.cb;export const payRequestUrl=$APP.za;export const bankerOf=$APP.P;export const SKEW_MS=12E4;export const CTX_MAX=128;export const issuanceKey=$a;export const buildOrder=$APP.jb;export const releasePreimage=zb;export const ORDER_TTL_MS=6E5;export const verifyOrder=nb;export const orderId=Ya;export const verifyLockReceipt=$APP.Hb;
export const settlementPreimage=Wa;export const PAY_FRAGMENT_KEY="pay";export const unsignedIssuance=Ua;export const buildLockReceipt=$APP.Gb;export const issuancePreimage=Xa;export const parseCurrency=$APP.Oa;export const CUR_RE=$APP.ua;export const DIGEST_RE=$APP.Ka;export const MEMO_MAX=140;export const DOM_PAY_REL="wpay-rel";export const LedgerStore=$APP.xc;export const DOM_PAY_ISS="wpay-iss";export const parsePayFragment=$APP.Ca;export const lockPreimage=xb;export const AMT_MIN=1;
export const buildIssuanceReceipt=$APP.qb;export const LEDGER_KEY_PREFIX="wal:";export const verifyPayRequest=$APP.ya;export const NEUTRAL_CODE="GAZ";export const payRequestPreimage=$APP.wa;export const settlementShape=gb;export const buildPayRequest=$APP.ib;export const SIG_RE=$APP.sa;export const verifySettlement=$APP.pb;export const buildLock=$APP.Eb;export const verifyLock=$APP.Fb;export const lockShape=Bb;export const DOM_PAY_RCP="wpay-rcp";export const NEUTRAL_UNIT="~.GAZ";
export const issuanceShape=hb;export const verifyIssuanceReceipt=$APP.rb;export const lockId=Ab;export const DOM_PAY_LOCK="wpay-lock";export const unsignedRelease=wb;export const verifyRelease=$APP.Jb;export const buildSettlement=$APP.ob;export const isPayableCurrency=$APP.M;export const unsignedPayRequest=$APP.va;export const CODE_RE=/^[A-Z]{3,8}$/;export const PUB_RE=$APP.ra;export const DECLINE_REASONS=fb;export const sanitizeCtx=Qa;export const hashlockMatches=$APP.tb;
export const lockReceiptPreimage=yb;export const unsignedSettlement=Ta;export const lockReceiptShape=Cb;export const MAX_ARTIFACT_BYTES=4096;export const NEUTRAL_BANKER="~";export const buildRelease=$APP.Ib;export const REQ_TTL_MS=36E5;export const MAX_SETTLEMENT_BYTES=8192;export const DOM_PAY_ORD="wpay-ord";export const unsignedLockReceipt=vb;export const DOM_PAY_REQ="wpay-req";export const MAX_TTL_MS=7776E6;export const sanitizeMemo=Ra;export const unsignedOrder=Sa;
export const lockReceiptKey=function(a){return Promise.resolve(null).then(function(){return Ab(a.lk).then(function(b){var c={v:1,t:"wlr"};c.bank=a.bank;c.lkid=b;return O($APP.N(c))})})};export const ORDER_ID_RE=bb;export const AMT_MAX=0x4000000000000;export const isNeutralUnit=$APP.K;export const payRequestShape=$APP.xa;export const expired=ab;export const newHashlock=$APP.sb;export const PAY_BASE_URL="https://banca.ardegazu.ro/";

static mirror of HEAD · about · clone: git clone https://git.ardegazu.ro/wallet-kit.git