@decaf-ts/for-fabric 0.1.52 → 0.1.54
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/dist/for-fabric.cjs +1 -1
- package/dist/for-fabric.cjs.map +1 -1
- package/dist/for-fabric.js +1 -1
- package/dist/for-fabric.js.map +1 -1
- package/lib/esm/shared/index.d.ts +0 -1
- package/lib/esm/shared/index.js +0 -1
- package/lib/esm/shared/index.js.map +1 -1
- package/lib/esm/version.d.ts +1 -1
- package/lib/esm/version.js +1 -1
- package/lib/shared/index.cjs +0 -1
- package/lib/shared/index.d.ts +0 -1
- package/lib/shared/index.js.map +1 -1
- package/lib/version.cjs +1 -1
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
package/dist/for-fabric.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Model as t,JSONSerializer as e,ModelKeys as r,ValidationKeys as i,required as n,model as s,stringFormat as a}from"@decaf-ts/decorator-validation";import{Metadata as o,Decoration as c,propMetadata as l,description as u,uses as p}from"@decaf-ts/decoration";import{DBKeys as d,OperationKeys as h,BulkCrudOperationKeys as g,BaseError as y,InternalError as f,NotFoundError as w,ConflictError as m,SerializationError as b,BadRequestError as A,onCreate as x,onCreateUpdate as S,version as v,ValidationError as E}from"@decaf-ts/db-decorators";import{PersistenceKeys as C,Context as k,ObserverHandler as N,Adapter as O,Repository as R,QueryError as T,PreparedStatementKeys as P,Condition as z,Sequence as $,UUID as B,SequenceModel as I,Serial as D,PagingError as F,UnsupportedError as j,MigrationError as L,ObserverError as _,AuthorizationError as q,ForbiddenError as M,ConnectionError as J,column as H,createdAt as K,updatedAt as U,createdBy as Y,updatedBy as G,pk as V,BaseModel as Q,oneToOne as X,Cascade as W,index as Z,OrderDirection as tt,table as et}from"@decaf-ts/core";import{CouchDBStatement as rt,CouchDBKeys as it,CouchDBGroupOperator as nt,CouchDBOperator as st,CouchDBPaginator as at,CouchDBAdapter as ot}from"@decaf-ts/for-couchdb";import{Property as ct,Object as lt,Contract as ut,Transaction as pt,Context as dt}from"fabric-contract-api";import{Logging as ht,MiniLogger as gt,isBrowser as yt,NumericLogLevels as ft,LogLevel as wt}from"@decaf-ts/logging";import{__decorate as mt,__metadata as bt}from"tslib";import*as At from"@peculiar/x509";import{Crypto as xt}from"@peculiar/webcrypto";var St,vt;(t=>{t.PRIVATE="private",t.SHARED="shared",t.FABRIC="fabric.",t.OWNEDBY="owned-by",t.TRANSACTION_ID="transaction-id"})(St||(St={})),(t=>{t.X509="X.509"})(vt||(vt={}));const Et="hlf-fabric";t.prototype.isShared=function(){return t.isShared(this.constructor)},t.prototype.isPrivate=function(){return t.isPrivate(this.constructor)},t.prototype.segregate=function(){return t.segregate(this)},t.segregate=(e=>{if(!t.isTransient(e))return{model:e};const r=o.validatableProperties(e.constructor),i=o.get(e.constructor,d.TRANSIENT),n=o.get(e.constructor,St.PRIVATE),s=o.get(e.constructor,St.PRIVATE),a={model:{},transient:{},private:{},shared:{}},c=Object.keys(i),l=Object.keys(n),u=Object.keys(s);for(const t of r){const r=c.includes(t),i=l.includes(t),n=u.includes(t);r?(a.transient=a.transient||{},a.transient[t]=e[t],i&&(a.private=a.private||{},a.private[t]=e[t]),n&&(a.shared=a.shared||{},a.shared[t]=e[t])):(a.model=a.model||{},a.model[t]=e[t])}return a.model=t.build(a.model,e.constructor.name),a}).bind(t),t.tableName=e=>{const r=e instanceof t?e.constructor:e;return o.get(r,C.TABLE)||(e instanceof t?e.constructor.name:e.name)},t.isPrivate=(t=>!!o.get("function"!=typeof t?t.constructor:t,St.PRIVATE)).bind(t),o.isShared=(t=>!!o.get("function"!=typeof t?t.constructor:t,St.SHARED)).bind(o);class Ct extends k{constructor(){super()}get stub(){return this.get("stub")}get timestamp(){return this.stub.getDateTimestamp()}get identity(){return this.get("identity")}toString(){return"fabric ctx"+(this.stub?" with stub":"without stub")}}class kt extends N{constructor(t=[h.CREATE,h.UPDATE,h.DELETE,g.CREATE_ALL,g.UPDATE_ALL,g.DELETE_ALL]){super(),this.supportedEvents=t}async updateObservers(t,e,r,...i){const{log:n,ctx:s}=O.logCtx(this.updateObservers,e,!1,...i),{stub:a}=s,[o,c]=i,l="string"==typeof t?t:t.name;if(-1!==this.supportedEvents.indexOf(e)){n.debug(`Emitting ${e} event`);const t=((t,e,r)=>{const i=[t,e];return r&&i.push(r),i.join("_")})(l,e,o);a.setEvent(t,Buffer.from(JSON.stringify({id:r})))}else a.setEvent(e,Buffer.from(JSON.stringify(c)))}}class Nt extends R{constructor(t,e,r){super(t,e),this.trackedEvents=r,this._overrides=Object.assign({},super._overrides,{ignoreValidation:!1,ignoreHandlers:!1,allowRawStatements:!0,forcePrepareSimpleQueries:!1,forcePrepareComplexQueries:!1})}async paginateBy(e,r,i={offset:1,limit:10},...n){let{offset:s,bookmark:a,limit:o}=i;if(!s&&!a)throw new T("PaginateBy needs a page or a bookmark");const{log:c,ctxArgs:l}=(await this.logCtx(n,P.PAGE_BY,!0)).for(this.paginateBy);let u;if(c.verbose(`paginating ${t.tableName(this.class)} with page size ${o}`),a)u=await this.override({forcePrepareComplexQueries:!1,forcePrepareSimpleQueries:!1}).select().where(this.attr(t.pk(this.class)).gt(a)).orderBy([e,r]).paginate(o,...l),s=1;else{if(!s)throw new T("PaginateBy needs a page or a bookmark");u=await this.override({forcePrepareComplexQueries:!1,forcePrepareSimpleQueries:!1}).select().orderBy([e,r]).paginate(o,...l)}const p=await u.page(s,a,...l);return u.serialize(p)}async statement(t,...e){const{log:r,ctx:i,ctxArgs:n}=(await this.logCtx(e,C.STATEMENT,!0)).for(this.statement);if(!R.statements(this,t))throw new T("Invalid prepared statement requested "+t);let s;i.logger&&i.logger.info(`Repo statement: ${t} + ${e}`),r.verbose(`Executing prepared statement ${t} with args ${n}`);try{s=await this[t](...n)}catch(e){if(e instanceof y)throw e;throw new f(`Failed to execute prepared statement ${t} with args ${n}: ${e}`)}return s}ObserverHandler(){return new kt}async updateObservers(t,e,r,...i){if(!this.trackedEvents||-1!==this.trackedEvents.indexOf(e))return await super.updateObservers(t,e,r,...i)}}class Ot extends rt{constructor(t){super(t)}async executionPrefix(t,...e){const r=e.filter(Boolean);if(e.length!==r.length)throw new f(`Received an undefined in the paginator for ${t}: ${e}`);return super.executionPrefix(t,...e)}async raw(e,...r){const{ctx:i}=this.logCtx(r,this.raw),n=await this.adapter.raw(e,!0,i),s=t.pk(this.fromSelector),a=o.get(this.fromSelector,o.key(d.ID,s))?.type;return this.selectSelector?n:n.map(t=>this.processRecord(t,s,a,i))}build(){const e={};e[it.TABLE]={},e[it.TABLE]=t.tableName(this.fromSelector);const r={selector:e};if(this.selectSelector&&(r.fields=this.selectSelector),this.whereCondition){const t=this.parseCondition(z.and(this.whereCondition,z.attribute(it.TABLE).eq(r.selector[it.TABLE]))).selector,e=Object.keys(t);if(1===e.length&&-1!==Object.values(nt).indexOf(e[0]))switch(e[0]){case nt.AND:t[nt.AND]=[...Object.values(t[nt.AND]).reduce((t,e)=>{const r=Object.keys(e);if(1!==r.length)throw Error("Too many keys in query selector. should be one");const i=r[0];return i===nt.AND?t.push(...e[i]):t.push(e),t},[])],r.selector=t;break;case nt.OR:{const e={};e[nt.AND]=[t,...Object.entries(r.selector).map(([t,e])=>{const r={};return r[t]=e,r})],r.selector=e;break}default:throw Error("This should be impossible")}else Object.entries(t).forEach(([t,e])=>{r.selector[t],r.selector[t]=e})}if(this.orderBySelector){r.sort=r.sort||[],r.selector=r.selector||{};const[t,e]=this.orderBySelector,i={};i[t]=e,r.sort.push(i),r.selector[t]||(r.selector[t]={},r.selector[t][st.BIGGER]=null)}return this.limitSelector&&(r.limit=this.limitSelector),this.offsetSelector&&(r.skip=this.offsetSelector),r}}class Rt extends ${constructor(t,e){super(t,e)}async current(...t){const{ctx:e,log:r}=(await this.logCtx(t,h.READ,!0)).for(this.current),{name:i,startWith:n}=this.options;try{const t=await this.repo.read(i,e);return this.parse(t.current)}catch(t){if(t instanceof w){let t;try{r.debug(`Trying to resolve current sequence ${i} value from context`),t=e.get(i),r.debug(`Retrieved cached current value for sequence ${i}: ${t}`)}catch(e){r.info(`No cached value for sequence ${i} in context`),t=n}try{return this.parse(t)}catch(t){throw new f(`Failed to parse initial value for sequence ${n}: ${t}`)}}throw new f(`Failed to retrieve current value for sequence ${i}: ${t}`)}}async increment(t,e){const r=e.logger.for(this.increment),{type:i,incrementBy:n,name:s}=this.options;if(!s)throw new f("Sequence name is required");return r.info("Obtaining sequence lock for sequence "+s),Rt.lock.execute(async()=>{const a=t||n;if(a%n!==0)throw new f("Value to increment does not consider the incrementBy setting: "+n);const o="function"==typeof i&&i?.name?i.name:i,c=await this.current(e);async function l(t){return t instanceof Promise&&(t=await t),r.for(l).info(`Storing new ${s} seq value in cache: ${t.current}`),e.cache.put(s,t.current),t}const u=async t=>{try{return await l(this.repo.update(new I({id:s,current:t}),e))}catch(i){if(i instanceof w)return r.debug(`Sequence create ${s} current=${c} next=${t}`),l(this.repo.create(new I({id:s,current:t}),e));throw i}};if("uuid"===o)for(;;){const t=B.instance.generate(c);try{const e=await u(t);return r.debug(`Sequence uuid increment ${s} current=${c} next=${t}`),e.current}catch(t){if(t instanceof m)continue;throw t}}const p=(t=>{switch(o){case Number.name:return this.parse(t)+a;case BigInt.name:return this.parse(t)+BigInt(a);case String.name:return this.parse(t);case"serial":return D.instance.generate(t);default:throw new f("Should never happen")}})(c),d=await u(p);return r.debug(`Sequence.increment ${s} current=${c} next=${p}`),d.current},s)}}class Tt extends e{constructor(){super()}deserialize(t,e){return JSON.parse(t)}serialize(t,e=!0){return require("json-stringify-deterministic")(require("sort-keys-recursive")(this.preSerialize(t,e)))}preSerialize(e,i=!0){const n=Object.assign({},e);let s;try{s=o.modelName(e.constructor)}catch(t){s=void 0}function a(t){return"object"!=typeof t?t:Array.isArray(t)?t.map(a):this.preSerialize(t)}return i&&(n[r.ANCHOR]=s||e.constructor.name),t.relations(e).forEach(t=>{n[t]=a.call(this,n[t])}),n}}class Pt extends at{constructor(t,e,r,i){super(t,e,r,i)}prepare(t){const e=Object.assign({},t);return e.limit&&(this.limit=e.limit),e.limit=this.size,e}async page(e=1,r,...i){const{ctxArgs:n,ctx:s,log:a}=this.adapter.logCtx([r,...i],this.page);if(this.isPreparedStatement())return await this.pagePrepared(e,...n);const c=Object.assign({},this.statement);if(this._recordCount&&this._totalPages)e=this.validatePage(e),c.skip=(e-1)*this.size;else{this._totalPages=this._recordCount=0;const t=await this.adapter.raw({...c,limit:Number.MAX_VALUE},!0,...n)||[];if(this._recordCount=t.length,this._recordCount>0){const t=c?.limit||this.size;return this._totalPages=Math.ceil(this._recordCount/t),await this.page(e,...n)}}if(1!==e){if(!this._bookmark)throw new F("No bookmark. Did you start in the first page?");c.bookmark=this._bookmark}const l=await this.adapter.raw(c,!0,...n),{docs:u,bookmark:p,warning:h}=l;if(h&&a.warn(h),!this.clazz)throw new F("No statement target defined");const g=t.pk(this.clazz),y=o.get(this.clazz,o.key(d.ID,g))?.type,f=c.fields&&c.fields.length?l:l.map(t=>this.adapter.revert(t,this.clazz,$.parseValue(y,t[g]),void 0,s));return this._bookmark=p,this._currentPage=e,f}}class zt extends f{constructor(t){super(t,zt.name)}}class $t extends f{constructor(t){super(t,$t.name)}}class Bt extends f{constructor(t){super(t,Bt.name)}}class It extends f{constructor(t){super(t,It.name,500)}}class Dt extends y{constructor(t){super(Dt.name,t,409)}}async function Ft(t,e,r,i){try{const e=t.get("identity");i[r]=e.getID()}catch(t){throw new j("No User found in context. Please provide a user in the context")}}async function jt(e,r,i,n){if(!r.type||n[i])return;let s;r.name||(r.name=t.sequenceName(n,"pk"));try{s=await this.adapter.Sequence(r)}catch(t){throw new f(`Failed to instantiate Sequence ${r.name}: ${t}`)}const a=await s.next(e);Object.defineProperty(n,i,{enumerable:!0,writable:!1,configurable:!0,value:a})}class Lt extends ot{getClient(){throw new j("Client is not supported in Fabric contracts")}static{this.textDecoder=new TextDecoder("utf8")}static{this.serializer=new Tt}get Context(){return Ct}repository(){return Nt}Paginator(t,e,r){return new Pt(this,t,e,r)}async Sequence(t){return new Rt(t,this)}constructor(t,e){super(t,Et,e)}for(t,...e){return super.for(t,...e)}async create(e,r,i,...n){const{ctx:s,log:a}=this.logCtx(n,this.create);a.info("in ADAPTER create with args "+n);const o=t.tableName(e);try{a.info(`adding entry to ${o} table with pk ${r}`);const t=s.stub.createCompositeKey(o,[r+""]);i=await this.putState(t,i,s)}catch(t){throw this.parseError(t)}return i}async read(e,r,...i){const{ctx:n,log:s}=this.logCtx(i,this.read);s.info("in ADAPTER read with args "+i);const a=t.tableName(e);let o;try{const t=n.stub.createCompositeKey(a,[r+""]);o=await this.readState(t,n)}catch(t){throw this.parseError(t)}return o}async update(e,r,i,...n){const{ctx:s,log:a}=this.logCtx(n,this.update),o=t.tableName(e);try{a.verbose(`updating entry to ${o} table with pk ${r}`);const t=s.stub.createCompositeKey(o,[r+""]);i=await this.putState(t,i,s)}catch(t){throw this.parseError(t)}return i}async delete(e,r,...i){const{ctx:n,log:s,ctxArgs:a}=this.logCtx(i,this.delete),o=t.tableName(e);let c;try{const t=n.stub.createCompositeKey(o,[r+""]);c=await this.read(e,r,...a),s.verbose(`deleting entry with pk ${r} from ${o} table`),await this.deleteState(t,n)}catch(t){throw this.parseError(t)}return c}async deleteState(t,e){const{ctx:r}=this.logCtx([e],this.deleteState);await r.stub.deleteState(t)}forPrivate(t){const e=[this.putState,this.readState,this.deleteState,this.queryResult,this.queryResultPaginated].map(t=>t.name);return new Proxy(this,{get:(r,i,n)=>e.includes(i)?new Proxy(r[i],{async apply(e,r,n){switch(i){case"putState":{const[e,r,i]=n;return await e.putPrivateData(t,r.toString(),i),i}case"deleteState":{const[e,r]=n;return e.deletePrivateData(t,r)}case"readState":{const[e,r]=n;return e.getPrivateData(t,r)}case"queryResult":{const[e,r]=n;return e.getPrivateDataQueryResult(t,r)}case"queryResultPaginated":{const[e,r,i,s]=n,a=await e.getPrivateDataQueryResult(t,r),o=[];let c=0,l=!s,u=null;for(;;){const t=await a.next();if(t.value&&t.value.value.toString()){const e=t.value.key,r=t.value.value.toString("utf8");if(!l){e===s?.toString()&&(l=!0);continue}if(o.push({Key:e,Record:JSON.parse(r)}),u=e,c++,c>=i)return await a.close(),{iterator:o,metadata:{fetchedRecordsCount:o.length,bookmark:u}}}if(t.done)return await a.close(),{iterator:o,metadata:{fetchedRecordsCount:o.length,bookmark:""}}}}default:throw new f("Unsupported method override "+i)}}}):Reflect.get(r,i,n)})}async putState(t,e,r){let i;const{log:n}=this.logCtx([r],this.putState);try{i=Buffer.from(Lt.serializer.serialize(e,!1))}catch(e){throw new b(`Failed to serialize record with id ${t}: ${e}`)}const s=r.get("segregated");return s?await r.stub.putPrivateData(s,t.toString(),i):await r.stub.putState(t.toString(),i),n.silly(`state stored${s?` in ${s} collection`:""} under id ${t}`),e}async readState(t,e){let r;const{log:i}=this.logCtx([e],this.readState);let n;const s=e.get("segregated");if(n=s?(await e.stub.getPrivateData(s,t.toString())).toString():(await e.stub.getState(t.toString())).toString(),!n)throw new w(`Record with id ${t}${s?` in ${s} collection`:""} not found`);i.silly(`state retrieved from${s?` ${s} collection`:""} under id ${t}`);try{r=Lt.serializer.deserialize(n.toString())}catch(t){throw new b("Failed to parse record: "+t)}return r}async queryResult(t,e,...r){const{ctx:i}=this.logCtx(r,this.queryResult);let n;const s=i.get("segregated");return n=s?await i.stub.getPrivateDataQueryResult(s,JSON.stringify(e)):await t.getQueryResult(JSON.stringify(e)),n}async queryResultPaginated(t,e,r=250,i,...n){const{ctx:s}=this.logCtx(n,this.readState);let a;const o=s.get("segregated");return o?(e.selector={...e.selector,_id:i?{$gt:i.toString()}:{$gte:""}},a={iterator:await t.getPrivateDataQueryResult(o,JSON.stringify(e)),metadata:{fetchedRecordsCount:r,bookmark:""}}):a=await t.getQueryResultWithPagination(JSON.stringify(e),r,i?.toString()),a}mergeModels(t){const e=t=>Object.entries(t).reduce((t,[e,r])=>(void 0!==r&&(t[e]=r),t),{});let r=t.pop();for(const i of t)r=Object.assign({},e(r),e(i));return r}decode(t){return Lt.textDecoder.decode(t)}async flags(t,e,r){let i=Object.assign({segregated:!1},r);return r instanceof Ct||(r.stub?Object.assign(i,{stub:r.stub,identity:r.clientIdentity,logger:ht.for(t,{logLevel:!1,timestamp:!1,correlationId:r.stub.getTxID()},r),correlationId:r.stub.getTxID()}):i=Object.assign(i,r||{})),await super.flags(t,e,i)}index(t){return Promise.resolve(void 0)}async resultIterator(t,e,r=!1){const i=[];let n=await e.next();for(;!n.done;){if(n.value&&n.value.value.toString()){let e={};if(t.debug(n.value.value.toString("utf8")),r){e.TxId=n.value.txId,e.Timestamp=n.value.timestamp;try{e.Value=JSON.parse(n.value.value.toString("utf8"))}catch(r){t.error(r),e.Value=n.value.value.toString("utf8")}}else try{e=JSON.parse(n.value.value.toString("utf8"))}catch(r){t.error(r),e=n.value.value.toString("utf8")}i.push(e)}n=await e.next()}return t.debug(`Closing iterator after ${i.length} results`),e.close(),i}async raw(t,e=!0,...r){const{log:i,ctx:n}=this.logCtx(r,this.raw),{skip:s,limit:a}=t;let o;a||s?(delete t.limit,delete t.skip,i.debug(`Retrieving paginated iterator: limit: ${a}/ skip: ${s}`),o=(await this.queryResultPaginated(n.stub,t,a||Number.MAX_VALUE,s?.toString(),n)).iterator):(i.debug("Retrieving iterator"),o=await this.queryResult(n.stub,t,n)),i.debug("Iterator acquired");const c=await this.resultIterator(i,o);return i.debug(`returning ${Array.isArray(c)?c.length:1} results`),c}Statement(){return new Ot(this)}async createAll(e,r,i,...n){if(r.length!==i.length)throw new f("Ids and models must have the same length");const{log:s,ctxArgs:a}=this.logCtx(n,this.createAll),o=t.tableName(e);return s.debug(`Creating ${r.length} entries ${o} table`),Promise.all(r.map((t,r)=>this.create(e,t,i[r],...a)))}async updateAll(e,r,i,...n){if(r.length!==i.length)throw new f("Ids and models must have the same length");const{log:s,ctxArgs:a}=this.logCtx(n,this.updateAll),o=t.tableName(e);return s.debug(`Updating ${r.length} entries ${o} table`),Promise.all(r.map((t,r)=>this.update(e,t,i[r],...a)))}prepare(e,...r){const{log:i}=this.logCtx(r,this.prepare),n=t.tableName(e.constructor),s=t.pk(e.constructor),a=t.segregate(e),o=Object.entries(a.model).reduce((r,[i,n])=>{if(void 0===n)return r;const s=t.columnName(e,i);if(this.isReserved(s))throw new f(`Property name ${s} is reserved`);return r[s]=n,r},{});return i.silly(`Preparing record for ${n} table with pk ${e[s]}`),{record:o,id:e[s],transient:a.transient}}revert(e,r,i,n,...s){const{log:a}=this.logCtx(s,this.revert),o={};o[t.pk(r)]=i;const c="string"==typeof r?t.build(o,r):new r(o);a.silly(`Rebuilding model ${c.constructor.name} id ${i}`);const l=Object.keys(c).reduce((r,i)=>(r[i]=e[t.columnName(r,i)],r),c);return n&&(a.debug("re-adding transient properties: "+Object.keys(n).join(", ")),Object.entries(n).forEach(([t,e])=>{if(t in l&&void 0!==l[t])throw new f(`Transient property ${t} already exists on model ${c.constructor.name}. should be impossible`);l[t]=e})),l}createPrefix(e,r,i,...n){const{ctxArgs:s}=this.logCtx(n,this.createPrefix),a={};return a[it.TABLE]=t.tableName(e),Object.assign(a,i),[e,r,a,...s]}updatePrefix(e,r,i,...n){const{ctxArgs:s}=this.logCtx(n,this.updatePrefix),a={};return a[it.TABLE]=t.tableName(e),Object.assign(a,i),[e,r,a,...s]}createAllPrefix(e,r,i,...n){if(r.length!==i.length)throw new f("Ids and models must have the same length");const s=n.pop(),a=r.map((r,n)=>{const s={};return s[it.TABLE]=t.tableName(e),Object.assign(s,i[n]),s});return[e,r,a,s]}updateAllPrefix(e,r,i,...n){if(r.length!==i.length)throw new f("Ids and models must have the same length");const s=n.pop(),a=r.map((r,n)=>{const s={};return s[it.TABLE]=t.tableName(e),Object.assign(s,i[n]),s});return[e,r,a,s]}parseError(t,e){return Lt.parseError(e||t)}logCtx(t,e,r=!1,i){return r?super.logCtx.call(this,t,e,r,i).then(t=>{if(!(t.ctx instanceof Ct))throw new f("Invalid context binding");if(!t.ctx.stub)throw new f("Missing Stub");if(!t.ctx.identity)throw new f("Missing Identity");return Object.assign(t,{stub:t.ctx.stub,identity:t.ctx.identity})}):super.logCtx(t,e,r,i)}static parseError(t){const e="string"==typeof t?t:t.message;return e.includes(w.name)?new w(t):e.includes(m.name)?new m(t):e.includes(A.name)?new A(t):e.includes(T.name)?new T(t):e.includes(F.name)?new F(t):e.includes(j.name)?new j(t):e.includes(L.name)?new L(t):e.includes(_.name)?new _(t):e.includes(q.name)?new q(t):e.includes(M.name)?new M(t):e.includes(J.name)?new J(t):e.includes(b.name)?new b(t):e.includes("no ledger context")?new It("No context found. this can be caused by debugging: "+e):new f(t)}static decoration(){super.decoration(),c.flavouredAs(Et).for(C.CREATED_BY).define(x(Ft),l(C.CREATED_BY,{})).apply(),c.flavouredAs(Et).for(C.UPDATED_BY).define(S(Ft),l(C.UPDATED_BY,{})).apply(),c.flavouredAs(Et).for(C.COLUMN).extend(ct()).apply(),c.flavouredAs(Et).for(i.DATE).extend(()=>(t,e)=>{ct(e,"string:date")(t,e)}),c.flavouredAs(Et).for(C.TABLE).extend(t=>{const e=[];let r="function"==typeof t?o.constr(t):o.constr(t.constructor);for(;r&&r!==Object&&r.prototype;)e.push(r),r=Object.getPrototypeOf(r);for(;e.length>0;){const t=e.pop();lt()(t)}return lt()(t)}).apply()}}Lt.decoration(),O.setCurrent(Et);class _t extends e{constructor(){super()}preSerialize(e){const i=Object.assign({},e);let n;try{n=o.modelName(e.constructor)}catch(t){n=void 0}i[r.ANCHOR]=n||e.constructor.name;const s=function t(e){const r=this;return"object"!=typeof e?e:Array.isArray(e)?e.map(e=>t.call(r,e)):this.preSerialize.call(this,e)}.bind(this);return t.relations(e).forEach(t=>{i[t]=s(i[t])}),i}deserialize(e){const i=JSON.parse(e),n=i[r.ANCHOR];if(!n)throw Error("Could not find class reference in serialized model");return t.build(i,n)}serialize(t){return require("json-stringify-deterministic")(require("sort-keys-recursive")(this.preSerialize(t)))}}var qt;(t=>{t.TRANSFER="Transfer",t.APPROVAL="Approval"})(qt||(qt={}));let Mt=class extends t{constructor(t){super(t)}};mt([u("Stores the original timestamp of creation"),H(),K(),bt("design:type",Date)],Mt.prototype,"createdAt",void 0),mt([u("Stores the timestamp of the last update"),H(),U(),bt("design:type",Date)],Mt.prototype,"updatedAt",void 0),mt([u("Stores the version of the model"),H(),v(),bt("design:type",Number)],Mt.prototype,"version",void 0),Mt=mt([p(Et),bt("design:paramtypes",[Object])],Mt);let Jt=class extends Mt{constructor(t){super(t)}};mt([u("Stores the creator"),H(),Y(),bt("design:type",String)],Jt.prototype,"createdBy",void 0),mt([u("Stores the user that last updated the model"),H(),G(),bt("design:type",String)],Jt.prototype,"updatedBy",void 0),Jt=mt([p(Et),bt("design:paramtypes",[Object])],Jt);let Ht=class extends Q{constructor(t){super(t)}};mt([u("Unique identifier of the credentials record"),H(),V(),bt("design:type",String)],Ht.prototype,"id",void 0),mt([u("PEM-encoded X.509 certificate for the identity"),H(),n(),bt("design:type",String)],Ht.prototype,"certificate",void 0),mt([u("PEM-encoded root or intermediate certificate"),H(),n(),bt("design:type",String)],Ht.prototype,"rootCertificate",void 0),mt([u("PEM-encoded private key"),H(),n(),bt("design:type",String)],Ht.prototype,"privateKey",void 0),Ht=mt([s(),bt("design:paramtypes",[Object])],Ht);let Kt=class extends Q{constructor(t){super(t),this.type=vt.X509}};mt([u("Unique identifier of the identity"),V(),bt("design:type",String)],Kt.prototype,"id",void 0),mt([X(Ht,{update:W.CASCADE,delete:W.CASCADE}),bt("design:type",Ht)],Kt.prototype,"credentials",void 0),mt([H(),n(),Z(),bt("design:type",String)],Kt.prototype,"mspId",void 0),mt([H(),n(),bt("design:type",String)],Kt.prototype,"type",void 0),Kt=mt([s(),bt("design:paramtypes",[Object])],Kt);const Ut=new xt;var Yt,Gt;At.cryptoProvider.set(Ut),(t=>{t.BASE2="01",t.BASE8="01234567",t.BASE11="0123456789a",t.BASE16="0123456789abcdef",t.BASE32="0123456789ABCDEFGHJKMNPQRSTVWXYZ",t.BASE32_Z="ybndrfg8ejkmcpqxot1uwisza345h769",t.BASE36="0123456789abcdefghijklmnopqrstuvwxyz",t.BASE58="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",t.BASE62="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",t.BASE64="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t.BASE67="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.!~"})(Yt||(Yt={})),(t=>{t.HASH="SHA-256",t[t.ITERATIONS=1e3]="ITERATIONS",t[t.KEYLENGTH=48]="KEYLENGTH",t[t.DERIVED_IV_LENGTH=16]="DERIVED_IV_LENGTH",t[t.DERIVED_KEY_LENGTH=32]="DERIVED_KEY_LENGTH",t.ALGORYTHM="AES-GCM",t.KEY_ALGORYTHM="PBKDF2"})(Gt||(Gt={}));class Vt{constructor(t){if(this.alphabet=t,this.baseMap=new Uint8Array(256),this.alphabet.length>=255)throw Error("Alphabet too long");for(let t=0;t<this.baseMap.length;t++)this.baseMap[t]=255;for(let e=0;e<t.length;e++){const r=t.charAt(e),i=r.charCodeAt(0);if(255!==this.baseMap[i])throw Error(r+" is ambiguous");this.baseMap[i]=e}this.base=this.alphabet.length,this.leader=this.alphabet.charAt(0),this.factor=Math.log(this.base)/Math.log(256),this.iFactor=Math.log(256)/Math.log(this.base)}encode(t){if("string"==typeof t?t=Buffer.from(t):ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t)),0===t.length)return"";let e=0,r=0,i=0;const n=t.length;for(;i!==n&&0===t[i];)i++,e++;const s=(n-i)*this.iFactor+1>>>0,a=new Uint8Array(s);for(;i!==n;){let e=t[i],n=0;for(let t=s-1;(0!==e||r>n)&&-1!==t;t--,n++)e+=256*a[t]>>>0,a[t]=e%this.base>>>0,e=e/this.base>>>0;if(0!==e)throw Error("Non-zero carry");r=n,i++}let o=s-r;for(;o!==s&&0===a[o];)o++;let c=this.leader.repeat(e);for(;s>o;++o)c+=this.alphabet.charAt(a[o]);return c}decodeUnsafe(t){if(0===t.length)return new Uint8Array(0);let e=0,r=0,i=0;for(;t[e]===this.leader;)r++,e++;const n=(t.length-e)*this.factor+1>>>0,s=new Uint8Array(n);for(;t[e];){let r=this.baseMap[t.charCodeAt(e)];if(255===r)return;let a=0;for(let t=n-1;(0!==r||i>a)&&-1!==t;t--,a++)r+=this.base*s[t]>>>0,s[t]=r%256>>>0,r=r/256>>>0;if(0!==r)throw Error("Non-zero carry");i=a,e++}let a=n-i;for(;a!==n&&0===s[a];)a++;const o=new Uint8Array(r+(n-a));let c=r;for(;a!==n;)o[c++]=s[a++];return o}decode(t){const e=this.decodeUnsafe(t);if(e)return e;throw Error("Non-base"+this.base+" character")}}class Qt{static{this.b58encoder=new Vt(Yt.BASE58)}static{this.logger=new gt(Qt.name)}constructor(){}static fabricIdFromCertificate(t){this.logger.debug(a("Parsing certificate: {0}",t));const e=new At.X509Certificate(t),{subject:r,issuer:i}=e;return this.logger.debug(a("Certificate parsed with subject {0} and issuer {1}",r,i)),`x509::/${r.replaceAll(", ","/")}::/${i.replaceAll(", ","/")}`}static encode(t){return this.b58encoder.encode(t)}static decode(t){const e=this.b58encoder.decode(t);return(new TextDecoder).decode(e)}static stringToArrayBuffer(t){const e=new ArrayBuffer(t.length),r=new Uint8Array(e);for(let e=0,i=t.length;i>e;e++)r[e]=t.charCodeAt(e);return e}static async extractKey(t,e,r){const i=Ut.subtle,n=e.toString("utf8").replace(RegExp(`-----BEGIN (${t.toUpperCase()} KEY|CERTIFICATE)-----`),"").replaceAll("\n","").replace(RegExp(`-----END (${t.toUpperCase()} KEY|CERTIFICATE)-----`),""),s=Buffer.from(n,"base64").toString("binary"),a=this.stringToArrayBuffer(s);return await i.importKey("pkcs8",a,{name:"ECDSA",namedCurve:"P-256"},!0,r||["sign"])}static async extractPrivateKey(t,e){return this.extractKey("private",t,e)}static async extractPublicKey(t,e){return this.extractKey("public",t,e)}static async sign(t,e){const r=await this.extractPrivateKey(t),i=await Ut.subtle.sign({name:"ECDSA",hash:"SHA-256"},r,e);return Array.from(new Uint8Array(i)).map(t=>t.toString(16).padStart(2,"0")).join("")}static async verify(t,e,r){const i=new At.X509Certificate(t),n=await i.publicKey.export();return e="string"==typeof e?Buffer.from(e,"hex"):e,r="string"==typeof r?Buffer.from(r):r,Ut.subtle.verify({name:"ECDSA",hash:"SHA-256"},n,e,r)}static async encrypt(t,e){const r=new At.X509Certificate(t),i=await r.publicKey.export();e="string"==typeof e?Buffer.from(e):e;const n=await this.getSubtleCrypto().encrypt({name:"ECDSA"},i,e);return Array.from(new Uint8Array(n)).map(t=>t.toString(16).padStart(2,"0")).join("")}static getSubtleCrypto(){return yt()?globalThis.window.crypto.subtle:Ut.subtle}static async decrypt(t,e){const r=await this.extractPrivateKey(t);return e="string"==typeof e?Buffer.from(e,"hex"):e,this.getSubtleCrypto().decrypt({name:"ECDSA"},r,e)}static async getMaster(t){const e=new TextEncoder;if(void 0===t){const r=Ut.randomUUID();t=e.encode(r).buffer}return{key:await this.getSubtleCrypto().importKey("raw",t,Gt.KEY_ALGORYTHM,!1,["deriveBits"]),iv:t}}static async getDerivationKey(t,e){const r=(new TextEncoder).encode(t),i=await this.getSubtleCrypto().digest("SHA-256",r),n={name:Gt.KEY_ALGORYTHM,hash:Gt.HASH,salt:i,iterations:Gt.ITERATIONS},s=await this.getSubtleCrypto().deriveBits(n,e,8*Gt.KEYLENGTH);return this.getKey(s)}static async getKey(t){const e=t.slice(0,32),r=t.slice(32);return{key:await this.getSubtleCrypto().importKey("raw",e,{name:Gt.ALGORYTHM},!1,["encrypt","decrypt"]),iv:r}}static async encryptPin(t,e){const r=(new TextEncoder).encode(t);return await this.getSubtleCrypto().encrypt({name:Gt.ALGORYTHM,iv:e.iv},e.key,r)}static async decryptPin(t,e){const r=new TextDecoder,i=await this.getSubtleCrypto().decrypt({name:Gt.ALGORYTHM,iv:e.iv},e.key,t);return r.decode(i)}}function Xt(){return function(t,e,r){const i=r.value;return r.value=async function(...t){const r=t[0],n=r.clientIdentity.getID(),s=await this.tokenRepository.select(),a=await s.execute(r);if(0==a.length)throw new w("No tokens avaialble");if(a.length>1)throw new w("To many token available : "+a.length);if(a[0].owner!=n)throw new q(`User not authorized to run ${e} on the token`);return await i.apply(this,t)},r}}function Wt(t,e){const r=t+e;if(t!==r-e||e!==r-t)throw new zt(`Addition overflow: ${t} + ${e}`);return r}function Zt(t,e){const r=t-e;if(t!==r+e||e!==t-r)throw new zt(`Subtraction overflow: ${t} - ${e}`);return r}lt()(Date);class te extends ut{static{this.adapter=new Lt}static{this.serializer=new _t}constructor(t,e){super(t),this.clazz=e,this.initialized=!1,this.repo=R.forModel(e)}async listBy(t,e,r,...i){const{ctxArgs:n,log:s}=(await this.logCtx([...i,t],P.LIST_BY,!0)).for(this.listBy);return s.info(`Running listBy key ${e}, order ${r} and args ${n}`),this.repo.listBy(e,r,...n)}async paginateBy(t,e,r,i={offset:1,limit:10},...n){const{ctxArgs:s,log:a}=(await this.logCtx([...n,t],P.PAGE_BY,!0)).for(this.paginateBy);return a.info(`Running paginateBy key ${e}, order ${r} with size ${i.limit} and args ${s}`),this.repo.paginateBy(e,r,i,...s)}async findOneBy(t,e,r,...i){const{ctxArgs:n,log:s}=(await this.logCtx([...i,t],P.FIND_ONE_BY,!0)).for(this.findOneBy);return s.info(`Running findOneBy key ${e}, value: ${r} with args ${n}`),this.repo.findOneBy(e,r,...n)}async statement(t,e,...r){const{ctxArgs:i,log:n}=(await this.logCtx([...r,t],C.STATEMENT,!0)).for(this.statement);return n.info(`Running statement ${e} with args ${i}`),this.repo.statement(e,...i)}async create(e,r,...i){const{log:n,ctxArgs:s}=(await this.logCtx([...i,e],h.CREATE,!0)).for(this.create);n.info("CONTRACT CREATE, "+s),"string"==typeof r&&(r=this.deserialize(r)),n.info("Creating model: "+JSON.stringify(r));const a=this.getTransientData(e);return n.info("Merging transient data..."),r=t.merge(r,a,this.clazz),this.repo.create(r,...s)}async read(t,e,...r){const{log:i,ctxArgs:n}=(await this.logCtx([...r,t],h.READ,!0)).for(this.create);return i.info(`reading entry with pk ${e} `),this.repo.read(e,...n)}getTransientData(t){const e=t.stub.getTransient();let r={};return e.has(this.repo.tableName)&&(r=JSON.parse(e.get(this.repo.tableName)?.toString("utf8"))),r}async update(e,r,...i){const{log:n,ctxArgs:s}=(await this.logCtx([...i,e],h.UPDATE,!0)).for(this.update);"string"==typeof r&&(r=this.deserialize(r)),n.info("Updating model: "+JSON.stringify(r));const a=this.getTransientData(e);return n.info("Merging transient data..."),r=t.merge(r,a,this.clazz),this.repo.update(r,...s)}async delete(t,e,...r){const{log:i,ctxArgs:n}=(await this.logCtx([...r,t],h.DELETE,!0)).for(this.delete);return i.info(`deleting entry with pk ${e} `),this.repo.delete(e+"",...n)}async deleteAll(t,e,...r){const{ctxArgs:i}=(await this.logCtx([...r,t],g.DELETE_ALL,!0)).for(this.deleteAll);return"string"==typeof e&&(e=JSON.parse(e)),this.repo.deleteAll(e,...i)}async readAll(t,e,...r){const{ctxArgs:i}=(await this.logCtx([...r,t],g.READ_ALL,!0)).for(this.create);return"string"==typeof e&&(e=JSON.parse(e)),this.repo.readAll(e,...i)}async updateAll(t,e,...r){const{log:i,ctxArgs:n}=(await this.logCtx([...r,t],g.UPDATE_ALL,!0)).for(this.updateAll);return"string"==typeof e&&(e=JSON.parse(e).map(t=>this.deserialize(t)).map(t=>new this.clazz(t))),i.info(`updating ${e.length} entries to the table`),this.repo.updateAll(e,...n)}async query(t,e,r,i=tt.ASC,n,s,...a){const{ctxArgs:o}=(await this.logCtx([...a,t],C.QUERY,!0)).for(this.create);return this.repo.query(e,r,i,n,s,...o)}async raw(t,e,r,...i){const{ctxArgs:n}=(await this.logCtx([...i,t],"raw",!0)).for(this.raw);return te.adapter.raw(e,r,...n)}serialize(t){return te.serializer.serialize(t)}deserialize(t){return te.serializer.deserialize(t)}async init(t){const{log:e,ctxArgs:r}=(await this.logCtx([t],C.INITIALIZATION,!0)).for(this.init);e.info(`Running contract ${this.getName()} initialization...`),this.initialized=!0,e.info("Contract initialization completed.")}async healthcheck(t){const{log:e}=(await this.logCtx([t],"healthcheck",!0)).for(this.healthcheck);return e.info(`Running Healthcheck: ${this.initialized}...`),{healthcheck:this.initialized}}async createAll(t,e,...r){const{log:i,ctxArgs:n}=(await this.logCtx([...r,t],g.CREATE_ALL,!0)).for(this.createAll);return"string"==typeof e&&(e=JSON.parse(e).map(t=>this.deserialize(t)).map(t=>new this.clazz(t))),i.info(`adding ${e.length} entries to the table`),this.repo.createAll(e,...n)}logCtx(t,e,r=!1){const i=t.pop();if(!i||!i.stub)throw new It("No valid context provided...");const n=te.adapter.logCtx([this.clazz,...t],e,r,i);function s(t){return t.ctxArgs.shift(),t}return n instanceof Promise?n.then(s):s(n)}}class ee extends te{constructor(t,e){super(t,e)}async create(t,e){return this.serialize(await super.create(t,e))}async read(t,e){return this.serialize(await super.read(t,e))}async update(t,e){return this.serialize(await super.update(t,e))}async delete(t,e){return this.serialize(await super.delete(t,e))}async deleteAll(t,e){const r=JSON.parse(e);return JSON.stringify((await super.deleteAll(t,r)).map(t=>this.serialize(t)))}async readAll(t,e){const r=JSON.parse(e);return JSON.stringify((await super.readAll(t,r)).map(t=>this.serialize(t)))}async updateAll(t,e){const r=JSON.parse(e).map(t=>this.deserialize(t)).map(t=>new this.clazz(t));return JSON.stringify((await super.updateAll(t,r)).map(t=>this.serialize(t)))}async statement(t,e,r){try{r=JSON.parse(r)}catch(t){throw new b("Invalid args: "+t)}if(!Array.isArray(r))throw new b(`Invalid args: ${JSON.stringify(r)}. must be an array`);return JSON.stringify(await super.statement(t,e,...r))}async listBy(t,e,r){return JSON.stringify(await super.listBy(t,e,r))}async paginateBy(t,e,r,i){try{i=JSON.parse(i)}catch(t){throw new b("Failed to deserialize paginateBy reference: "+t)}return JSON.stringify(await super.paginateBy(t,e,r,i))}async findOneBy(t,e,r){return JSON.stringify(await super.findOneBy(t,e,r))}async query(t,e,r,i,n,s){let a;try{a=z.from(JSON.parse(e))}catch(t){throw new b("Invalid condition: "+t)}return JSON.stringify(await super.query(t,a,r,i,n,s))}async init(t){await super.init(t)}async healthcheck(t){return JSON.stringify(await super.healthcheck(t))}async createAll(t,e){const r=JSON.parse(e).map(t=>this.deserialize(t)).map(t=>new this.clazz(t)),i=await super.createAll(t,r);return JSON.stringify(i.map(t=>this.serialize(t)))}}mt([pt(),bt("design:type",Function),bt("design:paramtypes",[dt,String]),bt("design:returntype",Promise)],ee.prototype,"create",null),mt([pt(!1),bt("design:type",Function),bt("design:paramtypes",[dt,String]),bt("design:returntype",Promise)],ee.prototype,"read",null),mt([pt(),bt("design:type",Function),bt("design:paramtypes",[dt,String]),bt("design:returntype",Promise)],ee.prototype,"update",null),mt([pt(),bt("design:type",Function),bt("design:paramtypes",[dt,String]),bt("design:returntype",Promise)],ee.prototype,"delete",null),mt([pt(),bt("design:type",Function),bt("design:paramtypes",[dt,String]),bt("design:returntype",Promise)],ee.prototype,"deleteAll",null),mt([pt(!1),bt("design:type",Function),bt("design:paramtypes",[dt,String]),bt("design:returntype",Promise)],ee.prototype,"readAll",null),mt([pt(),bt("design:type",Function),bt("design:paramtypes",[dt,String]),bt("design:returntype",Promise)],ee.prototype,"updateAll",null),mt([pt(!1),bt("design:type",Function),bt("design:paramtypes",[dt,String,String]),bt("design:returntype",Promise)],ee.prototype,"statement",null),mt([pt(!1),bt("design:type",Function),bt("design:paramtypes",[dt,String,String]),bt("design:returntype",Promise)],ee.prototype,"listBy",null),mt([pt(!1),bt("design:type",Function),bt("design:paramtypes",[dt,String,String,String]),bt("design:returntype",Promise)],ee.prototype,"paginateBy",null),mt([pt(!1),bt("design:type",Function),bt("design:paramtypes",[dt,String,String]),bt("design:returntype",Promise)],ee.prototype,"findOneBy",null),mt([pt(),bt("design:type",Function),bt("design:paramtypes",[dt]),bt("design:returntype",Promise)],ee.prototype,"init",null),mt([pt(!1),bt("design:type",Function),bt("design:paramtypes",[dt]),bt("design:returntype",Promise)],ee.prototype,"healthcheck",null),mt([pt(),bt("design:type",Function),bt("design:paramtypes",[dt,String]),bt("design:returntype",Promise)],ee.prototype,"createAll",null);let re=class extends Q{constructor(t){super(t)}};mt([V({type:String}),bt("design:type",String)],re.prototype,"name",void 0),mt([H(),n(),bt("design:type",String)],re.prototype,"owner",void 0),mt([H(),n(),bt("design:type",String)],re.prototype,"symbol",void 0),mt([H(),n(),bt("design:type",Number)],re.prototype,"decimals",void 0),re=mt([et("erc20_tokens"),s(),bt("design:paramtypes",[Object])],re);let ie=class extends Q{constructor(t){super(t)}};mt([V({type:String}),bt("design:type",String)],ie.prototype,"id",void 0),mt([H(),n(),bt("design:type",String)],ie.prototype,"token",void 0),mt([H(),n(),bt("design:type",Number)],ie.prototype,"balance",void 0),mt([H(),bt("design:type",String)],ie.prototype,"captive",void 0),ie=mt([et("erc20_wallets"),s(),bt("design:paramtypes",[Object])],ie);let ne=class extends Q{constructor(t){super(t)}};mt([V({type:String}),H(),n(),bt("design:type",String)],ne.prototype,"owner",void 0),mt([H(),n(),bt("design:type",String)],ne.prototype,"spender",void 0),mt([H(),n(),bt("design:type",Number)],ne.prototype,"value",void 0),ne=mt([et("erc20_allowances"),s(),bt("design:paramtypes",[Object])],ne);class se extends te{constructor(t){super(t,ie),se.adapter=se.adapter||new Lt,this.walletRepository=Nt.forModel(ie,se.adapter.alias),this.tokenRepository=Nt.forModel(re,se.adapter.alias),this.allowanceRepository=Nt.forModel(ne,se.adapter.alias)}async TokenName(t){const{ctx:e}=await this.logCtx([t],this.TokenName);await this.CheckInitialized(e);const r=this.tokenRepository.select();return(await r.execute(e))[0].name}async Symbol(t){const{ctx:e}=await this.logCtx([t],this.TokenName);await this.CheckInitialized(e);const r=this.tokenRepository.select();return(await r.execute(e))[0].symbol}async Decimals(t){const{ctx:e}=await this.logCtx([t],this.TokenName);await this.CheckInitialized(e);const r=this.tokenRepository.select();return(await r.execute(e))[0].decimals}async TotalSupply(t){const{ctx:e}=await this.logCtx([t],this.TokenName);await this.CheckInitialized(e);const r=this.walletRepository.select(),i=await r.execute(e);if(0==i.length)throw new w(`The token ${this.getName()} does not exist`);let n=0;return i.forEach(t=>{n+=t.balance}),n}async BalanceOf(t,e){const{ctx:r}=await this.logCtx([t],this.TokenName);return await this.CheckInitialized(r),(await this.walletRepository.read(e,r)).balance}async Transfer(t,e,r){const{ctx:i}=await this.logCtx([t],this.Transfer);await this.CheckInitialized(i);const n=i.identity.getID();if(!await this._transfer(n,e,r,i))throw new f("Failed to transfer");return!0}async TransferFrom(t,e,r,i){const{ctx:n}=await this.logCtx([t],this.BurnFrom);await this.CheckInitialized(n);const s=n.identity.getID(),a=await this._getAllowance(e,s,n);if(!a||0>a.value)throw new Bt(`spender ${s} has no allowance from ${e}`);const o=a.value;if(i>o)throw new $t("The spender does not have enough allowance to spend.");const c=Zt(o,i),l=Object.assign({},a,{value:c});if(await this.allowanceRepository.update(l,n),!await this._transfer(e,r,i,n))throw new f("Failed to transfer");return!0}async _transfer(t,e,r,i){const n=i.logger;if(t===e)throw new q("cannot transfer to and from same client account");if(0>r)throw new $t("transfer amount cannot be negative");const s=await this.walletRepository.read(t,i),a=s.balance;if(r>a)throw new $t(`client account ${t} has insufficient funds.`);let o,c=!1;try{o=await this.walletRepository.read(e,i)}catch(t){if(!(t instanceof y))throw new f(t);if(404!==t.code)throw new f(t.message);o=new ie({id:e,balance:0,token:await this.TokenName(i)}),c=!0}const l=o.balance,u=Zt(a,r),p=Wt(l,r),d=Object.assign({},s,{balance:u});await this.walletRepository.update(d,i);const h=Object.assign({},o,{balance:p});c?await this.walletRepository.create(h,i):await this.walletRepository.update(h,i);const g={from:t,to:e,value:r};return this.repo.refresh(re,qt.TRANSFER,"",g,i).catch(t=>n.error("Failed to notify transfer: "+t)),!0}async Approve(t,e,r){const{ctx:i,ctxArgs:n}=await this.logCtx([t],this.Approve);await this.CheckInitialized(i);const s=i.identity.getID();let a=await this._getAllowance(s,e,i);if((await this.walletRepository.read(s,...n)).balance<r)throw new $t(`client account ${s} has insufficient funds.`);a?(a.value=r,await this.allowanceRepository.update(a,...n)):(a=new ne({owner:s,spender:e,value:r}),await this.allowanceRepository.create(a,...n));const o={owner:s,spender:e,value:r};return this.repo.refresh(re,qt.APPROVAL,"",o,i),!0}async Allowance(t,e,r){const{ctx:i}=await this.logCtx([t],this.Allowance);await this.CheckInitialized(i);const n=await this._getAllowance(e,r,i);if(!n)throw new Bt(`spender ${r} has no allowance from ${e}`);return n.value}async _getAllowance(t,e,r){const i=z.and(z.attribute("owner").eq(t),z.attribute("spender").eq(e)),n=await this.allowanceRepository.select().where(i).execute(r);return n?.[0]}async Initialize(t,e){const{ctx:r}=await this.logCtx([t],this.Initialize);if((await this.tokenRepository.select().execute(r)).length>0)throw new q("contract options are already set, client is not authorized to change them");return e.owner=r.identity.getID(),await this.tokenRepository.create(e,r),!0}async CheckInitialized(t){const{ctx:e}=await this.logCtx([t],this.CheckInitialized);if(0==(await this.tokenRepository.select().execute(e)).length)throw new Dt("contract options need to be set before calling any function, call Initialize() to initialize contract")}async Mint(t,e){const{ctx:r}=await this.logCtx([t],this.Mint);await this.CheckInitialized(r);const i=r.identity.getID();if(0>=e)throw new E("mint amount must be a positive integer");let n;try{n=await this.walletRepository.read(i,r);const t=Wt(n.balance,e),s=Object.assign({},n,{balance:t});await this.walletRepository.update(s,r)}catch(n){if(!(n instanceof y))throw new f(n);if(404!==n.code)throw new f(n.message);{const n=new ie({id:i,balance:e,token:await this.TokenName(t)});await this.walletRepository.create(n,r)}}const s={from:"0x0",to:i,value:e};this.repo.ObserverHandler().updateObservers(re,qt.TRANSFER,"",s,r)}async Burn(t,e){const{log:r,ctx:i}=await this.logCtx([t],this.Burn);await this.CheckInitialized(i);const n=i.identity.getID(),s=await this.walletRepository.read(n,i),a=s.balance;if(e>a)throw new $t("Minter has insufficient funds.");const o=Zt(a,e),c=Object.assign({},s,{balance:o});await this.walletRepository.update(c,i),r.info(e+" tokens were burned");const l={from:n,to:"0x0",value:e};this.repo.ObserverHandler().updateObservers(re,qt.TRANSFER,"",l,i)}async BurnFrom(t,e,r){const{log:i,ctx:n}=await this.logCtx([t],this.BurnFrom);await this.CheckInitialized(n);const s=await this.walletRepository.read(e,n),a=s.balance;if(r>a)throw new $t(e+" has insufficient funds.");const o=Zt(a,r),c=Object.assign({},s,{balance:o});await this.walletRepository.update(c,n),i.info(`${r} tokens were burned from ${e}`);const l={from:e,to:"0x0",value:r};this.repo.ObserverHandler().updateObservers(re,qt.TRANSFER,"",l,n)}async ClientAccountBalance(t){const{ctx:e}=await this.logCtx([t],this.TokenName);await this.CheckInitialized(e);const r=e.identity.getID(),i=await this.walletRepository.read(r,e);if(!i)throw new $t(`The account ${r} does not exist`);return i.balance}async ClientAccountID(t){const{ctx:e}=await this.logCtx([t],this.ClientAccountID);return await this.CheckInitialized(e),e.identity.getID()}}mt([pt(!1),bt("design:type",Function),bt("design:paramtypes",[dt]),bt("design:returntype",Promise)],se.prototype,"TokenName",null),mt([pt(!1),bt("design:type",Function),bt("design:paramtypes",[dt]),bt("design:returntype",Promise)],se.prototype,"Symbol",null),mt([pt(!1),bt("design:type",Function),bt("design:paramtypes",[dt]),bt("design:returntype",Promise)],se.prototype,"Decimals",null),mt([pt(!1),bt("design:type",Function),bt("design:paramtypes",[dt]),bt("design:returntype",Promise)],se.prototype,"TotalSupply",null),mt([pt(!1),bt("design:type",Function),bt("design:paramtypes",[dt,String]),bt("design:returntype",Promise)],se.prototype,"BalanceOf",null),mt([pt(),bt("design:type",Function),bt("design:paramtypes",[dt,String,Number]),bt("design:returntype",Promise)],se.prototype,"Transfer",null),mt([pt(),bt("design:type",Function),bt("design:paramtypes",[dt,String,String,Number]),bt("design:returntype",Promise)],se.prototype,"TransferFrom",null),mt([pt(),bt("design:type",Function),bt("design:paramtypes",[dt,String,Number]),bt("design:returntype",Promise)],se.prototype,"Approve",null),mt([pt(!1),bt("design:type",Function),bt("design:paramtypes",[dt,String,String]),bt("design:returntype",Promise)],se.prototype,"Allowance",null),mt([pt(),bt("design:type",Function),bt("design:paramtypes",[dt,re]),bt("design:returntype",Promise)],se.prototype,"Initialize",null),mt([pt(!1),bt("design:type",Function),bt("design:paramtypes",[dt]),bt("design:returntype",Promise)],se.prototype,"CheckInitialized",null),mt([Xt(),pt(),bt("design:type",Function),bt("design:paramtypes",[dt,Number]),bt("design:returntype",Promise)],se.prototype,"Mint",null),mt([Xt(),pt(),bt("design:type",Function),bt("design:paramtypes",[dt,Number]),bt("design:returntype",Promise)],se.prototype,"Burn",null),mt([Xt(),pt(),bt("design:type",Function),bt("design:paramtypes",[dt,String,Number]),bt("design:returntype",Promise)],se.prototype,"BurnFrom",null),mt([pt(!1),bt("design:type",Function),bt("design:paramtypes",[dt]),bt("design:returntype",Promise)],se.prototype,"ClientAccountBalance",null),mt([pt(!1),bt("design:type",Function),bt("design:paramtypes",[dt]),bt("design:returntype",Promise)],se.prototype,"ClientAccountID",null);const ae=[se];class oe extends gt{constructor(t,e,r){super(t,e),r?(this.logger=r.logging.getLogger(t),r.logging.setLevel(e?.level||ht.getConfig().level)):this.logger=new gt(t,e)}log(t,e,r){if(ft[this.config("level")]<ft[t])return;let i;switch(t){case wt.benchmark:i=this.logger.verbose;break;case wt.info:i=this.logger.info;break;case wt.verbose:i=this.logger.verbose;break;case wt.debug:i=this.logger.debug;break;case wt.error:i=this.logger.error;break;case wt.trace:i=this.logger.trace;break;case wt.warn:i=this.logger.warn;break;case wt.silly:i=this.logger.silly;break;default:throw new f("Invalid log level")}i.call(this.logger,this.createLog(t,e,r))}}ht.setFactory((t,e,r)=>new oe(t||oe.name,e||{},r));const ce="##VERSION##",le="##PACKAGE##";o.registerLibrary(le,ce);export{oe as ContractLogger,Lt as FabricContractAdapter,Ct as FabricContractContext,Pt as FabricContractPaginator,Nt as FabricContractRepository,kt as FabricContractRepositoryObservableHandler,te as FabricCrudContract,Ot as FabricStatement,le as PACKAGE_NAME,ee as SerializedCrudContract,ce as VERSION,ae as contracts,Ft as createdByOnFabricCreateUpdate,jt as pkFabricOnCreate};
|
|
1
|
+
import{Model as t,JSONSerializer as e,ModelKeys as r,ValidationKeys as i,required as n,model as s}from"@decaf-ts/decorator-validation";import{Metadata as a,Decoration as o,propMetadata as c,description as l,uses as u}from"@decaf-ts/decoration";import{DBKeys as p,OperationKeys as d,BulkCrudOperationKeys as g,BaseError as h,InternalError as y,NotFoundError as w,ConflictError as f,SerializationError as m,BadRequestError as b,onCreate as x,onCreateUpdate as S,version as v,ValidationError as A}from"@decaf-ts/db-decorators";import{PersistenceKeys as C,Context as k,ObserverHandler as O,Adapter as N,Repository as P,QueryError as R,PreparedStatementKeys as E,Condition as $,Sequence as z,UUID as T,SequenceModel as I,Serial as B,PagingError as D,UnsupportedError as F,MigrationError as j,ObserverError as _,AuthorizationError as q,ForbiddenError as L,ConnectionError as J,column as M,createdAt as U,updatedAt as V,createdBy as Q,updatedBy as H,pk as Y,BaseModel as K,oneToOne as X,Cascade as G,index as W,OrderDirection as Z,table as tt}from"@decaf-ts/core";import{CouchDBStatement as et,CouchDBKeys as rt,CouchDBGroupOperator as it,CouchDBOperator as nt,CouchDBPaginator as st,CouchDBAdapter as at}from"@decaf-ts/for-couchdb";import{Property as ot,Object as ct,Contract as lt,Transaction as ut,Context as pt}from"fabric-contract-api";import{Logging as dt,MiniLogger as gt,NumericLogLevels as ht,LogLevel as yt}from"@decaf-ts/logging";import{__decorate as wt,__metadata as ft}from"tslib";var mt,bt;(t=>{t.PRIVATE="private",t.SHARED="shared",t.FABRIC="fabric.",t.OWNEDBY="owned-by",t.TRANSACTION_ID="transaction-id"})(mt||(mt={})),(t=>{t.X509="X.509"})(bt||(bt={}));const xt="hlf-fabric";t.prototype.isShared=function(){return t.isShared(this.constructor)},t.prototype.isPrivate=function(){return t.isPrivate(this.constructor)},t.prototype.segregate=function(){return t.segregate(this)},t.segregate=(e=>{if(!t.isTransient(e))return{model:e};const r=a.validatableProperties(e.constructor),i=a.get(e.constructor,p.TRANSIENT),n=a.get(e.constructor,mt.PRIVATE),s=a.get(e.constructor,mt.PRIVATE),o={model:{},transient:{},private:{},shared:{}},c=Object.keys(i),l=Object.keys(n),u=Object.keys(s);for(const t of r){const r=c.includes(t),i=l.includes(t),n=u.includes(t);r?(o.transient=o.transient||{},o.transient[t]=e[t],i&&(o.private=o.private||{},o.private[t]=e[t]),n&&(o.shared=o.shared||{},o.shared[t]=e[t])):(o.model=o.model||{},o.model[t]=e[t])}return o.model=t.build(o.model,e.constructor.name),o}).bind(t),t.tableName=e=>{const r=e instanceof t?e.constructor:e;return a.get(r,C.TABLE)||(e instanceof t?e.constructor.name:e.name)},t.isPrivate=(t=>!!a.get("function"!=typeof t?t.constructor:t,mt.PRIVATE)).bind(t),a.isShared=(t=>!!a.get("function"!=typeof t?t.constructor:t,mt.SHARED)).bind(a);class St extends k{constructor(){super()}get stub(){return this.get("stub")}get timestamp(){return this.stub.getDateTimestamp()}get identity(){return this.get("identity")}toString(){return"fabric ctx"+(this.stub?" with stub":"without stub")}}class vt extends O{constructor(t=[d.CREATE,d.UPDATE,d.DELETE,g.CREATE_ALL,g.UPDATE_ALL,g.DELETE_ALL]){super(),this.supportedEvents=t}async updateObservers(t,e,r,...i){const{log:n,ctx:s}=N.logCtx(this.updateObservers,e,!1,...i),{stub:a}=s,[o,c]=i,l="string"==typeof t?t:t.name;if(-1!==this.supportedEvents.indexOf(e)){n.debug(`Emitting ${e} event`);const t=((t,e,r)=>{const i=[t,e];return r&&i.push(r),i.join("_")})(l,e,o);a.setEvent(t,Buffer.from(JSON.stringify({id:r})))}else a.setEvent(e,Buffer.from(JSON.stringify(c)))}}class At extends P{constructor(t,e,r){super(t,e),this.trackedEvents=r,this._overrides=Object.assign({},super._overrides,{ignoreValidation:!1,ignoreHandlers:!1,allowRawStatements:!0,forcePrepareSimpleQueries:!1,forcePrepareComplexQueries:!1})}async paginateBy(e,r,i={offset:1,limit:10},...n){let{offset:s,bookmark:a,limit:o}=i;if(!s&&!a)throw new R("PaginateBy needs a page or a bookmark");const{log:c,ctxArgs:l}=(await this.logCtx(n,E.PAGE_BY,!0)).for(this.paginateBy);let u;if(c.verbose(`paginating ${t.tableName(this.class)} with page size ${o}`),a)u=await this.override({forcePrepareComplexQueries:!1,forcePrepareSimpleQueries:!1}).select().where(this.attr(t.pk(this.class)).gt(a)).orderBy([e,r]).paginate(o,...l),s=1;else{if(!s)throw new R("PaginateBy needs a page or a bookmark");u=await this.override({forcePrepareComplexQueries:!1,forcePrepareSimpleQueries:!1}).select().orderBy([e,r]).paginate(o,...l)}const p=await u.page(s,a,...l);return u.serialize(p)}async statement(t,...e){const{log:r,ctx:i,ctxArgs:n}=(await this.logCtx(e,C.STATEMENT,!0)).for(this.statement);if(!P.statements(this,t))throw new R("Invalid prepared statement requested "+t);let s;i.logger&&i.logger.info(`Repo statement: ${t} + ${e}`),r.verbose(`Executing prepared statement ${t} with args ${n}`);try{s=await this[t](...n)}catch(e){if(e instanceof h)throw e;throw new y(`Failed to execute prepared statement ${t} with args ${n}: ${e}`)}return s}ObserverHandler(){return new vt}async updateObservers(t,e,r,...i){if(!this.trackedEvents||-1!==this.trackedEvents.indexOf(e))return await super.updateObservers(t,e,r,...i)}}class Ct extends et{constructor(t){super(t)}async executionPrefix(t,...e){const r=e.filter(Boolean);if(e.length!==r.length)throw new y(`Received an undefined in the paginator for ${t}: ${e}`);return super.executionPrefix(t,...e)}async raw(e,...r){const{ctx:i}=this.logCtx(r,this.raw),n=await this.adapter.raw(e,!0,i),s=t.pk(this.fromSelector),o=a.get(this.fromSelector,a.key(p.ID,s))?.type;return this.selectSelector?n:n.map(t=>this.processRecord(t,s,o,i))}build(){const e={};e[rt.TABLE]={},e[rt.TABLE]=t.tableName(this.fromSelector);const r={selector:e};if(this.selectSelector&&(r.fields=this.selectSelector),this.whereCondition){const t=this.parseCondition($.and(this.whereCondition,$.attribute(rt.TABLE).eq(r.selector[rt.TABLE]))).selector,e=Object.keys(t);if(1===e.length&&-1!==Object.values(it).indexOf(e[0]))switch(e[0]){case it.AND:t[it.AND]=[...Object.values(t[it.AND]).reduce((t,e)=>{const r=Object.keys(e);if(1!==r.length)throw Error("Too many keys in query selector. should be one");const i=r[0];return i===it.AND?t.push(...e[i]):t.push(e),t},[])],r.selector=t;break;case it.OR:{const e={};e[it.AND]=[t,...Object.entries(r.selector).map(([t,e])=>{const r={};return r[t]=e,r})],r.selector=e;break}default:throw Error("This should be impossible")}else Object.entries(t).forEach(([t,e])=>{r.selector[t],r.selector[t]=e})}if(this.orderBySelector){r.sort=r.sort||[],r.selector=r.selector||{};const[t,e]=this.orderBySelector,i={};i[t]=e,r.sort.push(i),r.selector[t]||(r.selector[t]={},r.selector[t][nt.BIGGER]=null)}return this.limitSelector&&(r.limit=this.limitSelector),this.offsetSelector&&(r.skip=this.offsetSelector),r}}class kt extends z{constructor(t,e){super(t,e)}async current(...t){const{ctx:e,log:r}=(await this.logCtx(t,d.READ,!0)).for(this.current),{name:i,startWith:n}=this.options;try{const t=await this.repo.read(i,e);return this.parse(t.current)}catch(t){if(t instanceof w){let t;try{r.debug(`Trying to resolve current sequence ${i} value from context`),t=e.get(i),r.debug(`Retrieved cached current value for sequence ${i}: ${t}`)}catch(e){r.info(`No cached value for sequence ${i} in context`),t=n}try{return this.parse(t)}catch(t){throw new y(`Failed to parse initial value for sequence ${n}: ${t}`)}}throw new y(`Failed to retrieve current value for sequence ${i}: ${t}`)}}async increment(t,e){const r=e.logger.for(this.increment),{type:i,incrementBy:n,name:s}=this.options;if(!s)throw new y("Sequence name is required");return r.info("Obtaining sequence lock for sequence "+s),kt.lock.execute(async()=>{const a=t||n;if(a%n!==0)throw new y("Value to increment does not consider the incrementBy setting: "+n);const o="function"==typeof i&&i?.name?i.name:i,c=await this.current(e);async function l(t){return t instanceof Promise&&(t=await t),r.for(l).info(`Storing new ${s} seq value in cache: ${t.current}`),e.cache.put(s,t.current),t}const u=async t=>{try{return await l(this.repo.update(new I({id:s,current:t}),e))}catch(i){if(i instanceof w)return r.debug(`Sequence create ${s} current=${c} next=${t}`),l(this.repo.create(new I({id:s,current:t}),e));throw i}};if("uuid"===o)for(;;){const t=T.instance.generate(c);try{const e=await u(t);return r.debug(`Sequence uuid increment ${s} current=${c} next=${t}`),e.current}catch(t){if(t instanceof f)continue;throw t}}const p=(t=>{switch(o){case Number.name:return this.parse(t)+a;case BigInt.name:return this.parse(t)+BigInt(a);case String.name:return this.parse(t);case"serial":return B.instance.generate(t);default:throw new y("Should never happen")}})(c),d=await u(p);return r.debug(`Sequence.increment ${s} current=${c} next=${p}`),d.current},s)}}class Ot extends e{constructor(){super()}deserialize(t,e){return JSON.parse(t)}serialize(t,e=!0){return require("json-stringify-deterministic")(require("sort-keys-recursive")(this.preSerialize(t,e)))}preSerialize(e,i=!0){const n=Object.assign({},e);let s;try{s=a.modelName(e.constructor)}catch(t){s=void 0}function o(t){return"object"!=typeof t?t:Array.isArray(t)?t.map(o):this.preSerialize(t)}return i&&(n[r.ANCHOR]=s||e.constructor.name),t.relations(e).forEach(t=>{n[t]=o.call(this,n[t])}),n}}class Nt extends st{constructor(t,e,r,i){super(t,e,r,i)}prepare(t){const e=Object.assign({},t);return e.limit&&(this.limit=e.limit),e.limit=this.size,e}async page(e=1,r,...i){const{ctxArgs:n,ctx:s,log:o}=this.adapter.logCtx([r,...i],this.page);if(this.isPreparedStatement())return await this.pagePrepared(e,...n);const c=Object.assign({},this.statement);if(this._recordCount&&this._totalPages)e=this.validatePage(e),c.skip=(e-1)*this.size;else{this._totalPages=this._recordCount=0;const t=await this.adapter.raw({...c,limit:Number.MAX_VALUE},!0,...n)||[];if(this._recordCount=t.length,this._recordCount>0){const t=c?.limit||this.size;return this._totalPages=Math.ceil(this._recordCount/t),await this.page(e,...n)}}if(1!==e){if(!this._bookmark)throw new D("No bookmark. Did you start in the first page?");c.bookmark=this._bookmark}const l=await this.adapter.raw(c,!0,...n),{docs:u,bookmark:d,warning:g}=l;if(g&&o.warn(g),!this.clazz)throw new D("No statement target defined");const h=t.pk(this.clazz),y=a.get(this.clazz,a.key(p.ID,h))?.type,w=c.fields&&c.fields.length?l:l.map(t=>this.adapter.revert(t,this.clazz,z.parseValue(y,t[h]),void 0,s));return this._bookmark=d,this._currentPage=e,w}}class Pt extends y{constructor(t){super(t,Pt.name)}}class Rt extends y{constructor(t){super(t,Rt.name)}}class Et extends y{constructor(t){super(t,Et.name)}}class $t extends y{constructor(t){super(t,$t.name,500)}}class zt extends h{constructor(t){super(zt.name,t,409)}}async function Tt(t,e,r,i){try{const e=t.get("identity");i[r]=e.getID()}catch(t){throw new F("No User found in context. Please provide a user in the context")}}async function It(e,r,i,n){if(!r.type||n[i])return;let s;r.name||(r.name=t.sequenceName(n,"pk"));try{s=await this.adapter.Sequence(r)}catch(t){throw new y(`Failed to instantiate Sequence ${r.name}: ${t}`)}const a=await s.next(e);Object.defineProperty(n,i,{enumerable:!0,writable:!1,configurable:!0,value:a})}class Bt extends at{getClient(){throw new F("Client is not supported in Fabric contracts")}static{this.textDecoder=new TextDecoder("utf8")}static{this.serializer=new Ot}get Context(){return St}repository(){return At}Paginator(t,e,r){return new Nt(this,t,e,r)}async Sequence(t){return new kt(t,this)}constructor(t,e){super(t,xt,e)}for(t,...e){return super.for(t,...e)}async create(e,r,i,...n){const{ctx:s,log:a}=this.logCtx(n,this.create);a.info("in ADAPTER create with args "+n);const o=t.tableName(e);try{a.info(`adding entry to ${o} table with pk ${r}`);const t=s.stub.createCompositeKey(o,[r+""]);i=await this.putState(t,i,s)}catch(t){throw this.parseError(t)}return i}async read(e,r,...i){const{ctx:n,log:s}=this.logCtx(i,this.read);s.info("in ADAPTER read with args "+i);const a=t.tableName(e);let o;try{const t=n.stub.createCompositeKey(a,[r+""]);o=await this.readState(t,n)}catch(t){throw this.parseError(t)}return o}async update(e,r,i,...n){const{ctx:s,log:a}=this.logCtx(n,this.update),o=t.tableName(e);try{a.verbose(`updating entry to ${o} table with pk ${r}`);const t=s.stub.createCompositeKey(o,[r+""]);i=await this.putState(t,i,s)}catch(t){throw this.parseError(t)}return i}async delete(e,r,...i){const{ctx:n,log:s,ctxArgs:a}=this.logCtx(i,this.delete),o=t.tableName(e);let c;try{const t=n.stub.createCompositeKey(o,[r+""]);c=await this.read(e,r,...a),s.verbose(`deleting entry with pk ${r} from ${o} table`),await this.deleteState(t,n)}catch(t){throw this.parseError(t)}return c}async deleteState(t,e){const{ctx:r}=this.logCtx([e],this.deleteState);await r.stub.deleteState(t)}forPrivate(t){const e=[this.putState,this.readState,this.deleteState,this.queryResult,this.queryResultPaginated].map(t=>t.name);return new Proxy(this,{get:(r,i,n)=>e.includes(i)?new Proxy(r[i],{async apply(e,r,n){switch(i){case"putState":{const[e,r,i]=n;return await e.putPrivateData(t,r.toString(),i),i}case"deleteState":{const[e,r]=n;return e.deletePrivateData(t,r)}case"readState":{const[e,r]=n;return e.getPrivateData(t,r)}case"queryResult":{const[e,r]=n;return e.getPrivateDataQueryResult(t,r)}case"queryResultPaginated":{const[e,r,i,s]=n,a=await e.getPrivateDataQueryResult(t,r),o=[];let c=0,l=!s,u=null;for(;;){const t=await a.next();if(t.value&&t.value.value.toString()){const e=t.value.key,r=t.value.value.toString("utf8");if(!l){e===s?.toString()&&(l=!0);continue}if(o.push({Key:e,Record:JSON.parse(r)}),u=e,c++,c>=i)return await a.close(),{iterator:o,metadata:{fetchedRecordsCount:o.length,bookmark:u}}}if(t.done)return await a.close(),{iterator:o,metadata:{fetchedRecordsCount:o.length,bookmark:""}}}}default:throw new y("Unsupported method override "+i)}}}):Reflect.get(r,i,n)})}async putState(t,e,r){let i;const{log:n}=this.logCtx([r],this.putState);try{i=Buffer.from(Bt.serializer.serialize(e,!1))}catch(e){throw new m(`Failed to serialize record with id ${t}: ${e}`)}const s=r.get("segregated");return s?await r.stub.putPrivateData(s,t.toString(),i):await r.stub.putState(t.toString(),i),n.silly(`state stored${s?` in ${s} collection`:""} under id ${t}`),e}async readState(t,e){let r;const{log:i}=this.logCtx([e],this.readState);let n;const s=e.get("segregated");if(n=s?(await e.stub.getPrivateData(s,t.toString())).toString():(await e.stub.getState(t.toString())).toString(),!n)throw new w(`Record with id ${t}${s?` in ${s} collection`:""} not found`);i.silly(`state retrieved from${s?` ${s} collection`:""} under id ${t}`);try{r=Bt.serializer.deserialize(n.toString())}catch(t){throw new m("Failed to parse record: "+t)}return r}async queryResult(t,e,...r){const{ctx:i}=this.logCtx(r,this.queryResult);let n;const s=i.get("segregated");return n=s?await i.stub.getPrivateDataQueryResult(s,JSON.stringify(e)):await t.getQueryResult(JSON.stringify(e)),n}async queryResultPaginated(t,e,r=250,i,...n){const{ctx:s}=this.logCtx(n,this.readState);let a;const o=s.get("segregated");return o?(e.selector={...e.selector,_id:i?{$gt:i.toString()}:{$gte:""}},a={iterator:await t.getPrivateDataQueryResult(o,JSON.stringify(e)),metadata:{fetchedRecordsCount:r,bookmark:""}}):a=await t.getQueryResultWithPagination(JSON.stringify(e),r,i?.toString()),a}mergeModels(t){const e=t=>Object.entries(t).reduce((t,[e,r])=>(void 0!==r&&(t[e]=r),t),{});let r=t.pop();for(const i of t)r=Object.assign({},e(r),e(i));return r}decode(t){return Bt.textDecoder.decode(t)}async flags(t,e,r){let i=Object.assign({segregated:!1},r);return r instanceof St||(r.stub?Object.assign(i,{stub:r.stub,identity:r.clientIdentity,logger:dt.for(t,{logLevel:!1,timestamp:!1,correlationId:r.stub.getTxID()},r),correlationId:r.stub.getTxID()}):i=Object.assign(i,r||{})),await super.flags(t,e,i)}index(t){return Promise.resolve(void 0)}async resultIterator(t,e,r=!1){const i=[];let n=await e.next();for(;!n.done;){if(n.value&&n.value.value.toString()){let e={};if(t.debug(n.value.value.toString("utf8")),r){e.TxId=n.value.txId,e.Timestamp=n.value.timestamp;try{e.Value=JSON.parse(n.value.value.toString("utf8"))}catch(r){t.error(r),e.Value=n.value.value.toString("utf8")}}else try{e=JSON.parse(n.value.value.toString("utf8"))}catch(r){t.error(r),e=n.value.value.toString("utf8")}i.push(e)}n=await e.next()}return t.debug(`Closing iterator after ${i.length} results`),e.close(),i}async raw(t,e=!0,...r){const{log:i,ctx:n}=this.logCtx(r,this.raw),{skip:s,limit:a}=t;let o;a||s?(delete t.limit,delete t.skip,i.debug(`Retrieving paginated iterator: limit: ${a}/ skip: ${s}`),o=(await this.queryResultPaginated(n.stub,t,a||Number.MAX_VALUE,s?.toString(),n)).iterator):(i.debug("Retrieving iterator"),o=await this.queryResult(n.stub,t,n)),i.debug("Iterator acquired");const c=await this.resultIterator(i,o);return i.debug(`returning ${Array.isArray(c)?c.length:1} results`),c}Statement(){return new Ct(this)}async createAll(e,r,i,...n){if(r.length!==i.length)throw new y("Ids and models must have the same length");const{log:s,ctxArgs:a}=this.logCtx(n,this.createAll),o=t.tableName(e);return s.debug(`Creating ${r.length} entries ${o} table`),Promise.all(r.map((t,r)=>this.create(e,t,i[r],...a)))}async updateAll(e,r,i,...n){if(r.length!==i.length)throw new y("Ids and models must have the same length");const{log:s,ctxArgs:a}=this.logCtx(n,this.updateAll),o=t.tableName(e);return s.debug(`Updating ${r.length} entries ${o} table`),Promise.all(r.map((t,r)=>this.update(e,t,i[r],...a)))}prepare(e,...r){const{log:i}=this.logCtx(r,this.prepare),n=t.tableName(e.constructor),s=t.pk(e.constructor),a=t.segregate(e),o=Object.entries(a.model).reduce((r,[i,n])=>{if(void 0===n)return r;const s=t.columnName(e,i);if(this.isReserved(s))throw new y(`Property name ${s} is reserved`);return r[s]=n,r},{});return i.silly(`Preparing record for ${n} table with pk ${e[s]}`),{record:o,id:e[s],transient:a.transient}}revert(e,r,i,n,...s){const{log:a}=this.logCtx(s,this.revert),o={};o[t.pk(r)]=i;const c="string"==typeof r?t.build(o,r):new r(o);a.silly(`Rebuilding model ${c.constructor.name} id ${i}`);const l=Object.keys(c).reduce((r,i)=>(r[i]=e[t.columnName(r,i)],r),c);return n&&(a.debug("re-adding transient properties: "+Object.keys(n).join(", ")),Object.entries(n).forEach(([t,e])=>{if(t in l&&void 0!==l[t])throw new y(`Transient property ${t} already exists on model ${c.constructor.name}. should be impossible`);l[t]=e})),l}createPrefix(e,r,i,...n){const{ctxArgs:s}=this.logCtx(n,this.createPrefix),a={};return a[rt.TABLE]=t.tableName(e),Object.assign(a,i),[e,r,a,...s]}updatePrefix(e,r,i,...n){const{ctxArgs:s}=this.logCtx(n,this.updatePrefix),a={};return a[rt.TABLE]=t.tableName(e),Object.assign(a,i),[e,r,a,...s]}createAllPrefix(e,r,i,...n){if(r.length!==i.length)throw new y("Ids and models must have the same length");const s=n.pop(),a=r.map((r,n)=>{const s={};return s[rt.TABLE]=t.tableName(e),Object.assign(s,i[n]),s});return[e,r,a,s]}updateAllPrefix(e,r,i,...n){if(r.length!==i.length)throw new y("Ids and models must have the same length");const s=n.pop(),a=r.map((r,n)=>{const s={};return s[rt.TABLE]=t.tableName(e),Object.assign(s,i[n]),s});return[e,r,a,s]}parseError(t,e){return Bt.parseError(e||t)}logCtx(t,e,r=!1,i){return r?super.logCtx.call(this,t,e,r,i).then(t=>{if(!(t.ctx instanceof St))throw new y("Invalid context binding");if(!t.ctx.stub)throw new y("Missing Stub");if(!t.ctx.identity)throw new y("Missing Identity");return Object.assign(t,{stub:t.ctx.stub,identity:t.ctx.identity})}):super.logCtx(t,e,r,i)}static parseError(t){const e="string"==typeof t?t:t.message;return e.includes(w.name)?new w(t):e.includes(f.name)?new f(t):e.includes(b.name)?new b(t):e.includes(R.name)?new R(t):e.includes(D.name)?new D(t):e.includes(F.name)?new F(t):e.includes(j.name)?new j(t):e.includes(_.name)?new _(t):e.includes(q.name)?new q(t):e.includes(L.name)?new L(t):e.includes(J.name)?new J(t):e.includes(m.name)?new m(t):e.includes("no ledger context")?new $t("No context found. this can be caused by debugging: "+e):new y(t)}static decoration(){super.decoration(),o.flavouredAs(xt).for(C.CREATED_BY).define(x(Tt),c(C.CREATED_BY,{})).apply(),o.flavouredAs(xt).for(C.UPDATED_BY).define(S(Tt),c(C.UPDATED_BY,{})).apply(),o.flavouredAs(xt).for(C.COLUMN).extend(ot()).apply(),o.flavouredAs(xt).for(i.DATE).extend(()=>(t,e)=>{ot(e,"string:date")(t,e)}),o.flavouredAs(xt).for(C.TABLE).extend(t=>{const e=[];let r="function"==typeof t?a.constr(t):a.constr(t.constructor);for(;r&&r!==Object&&r.prototype;)e.push(r),r=Object.getPrototypeOf(r);for(;e.length>0;){const t=e.pop();ct()(t)}return ct()(t)}).apply()}}Bt.decoration(),N.setCurrent(xt);class Dt extends e{constructor(){super()}preSerialize(e){const i=Object.assign({},e);let n;try{n=a.modelName(e.constructor)}catch(t){n=void 0}i[r.ANCHOR]=n||e.constructor.name;const s=function t(e){const r=this;return"object"!=typeof e?e:Array.isArray(e)?e.map(e=>t.call(r,e)):this.preSerialize.call(this,e)}.bind(this);return t.relations(e).forEach(t=>{i[t]=s(i[t])}),i}deserialize(e){const i=JSON.parse(e),n=i[r.ANCHOR];if(!n)throw Error("Could not find class reference in serialized model");return t.build(i,n)}serialize(t){return require("json-stringify-deterministic")(require("sort-keys-recursive")(this.preSerialize(t)))}}var Ft;(t=>{t.TRANSFER="Transfer",t.APPROVAL="Approval"})(Ft||(Ft={}));let jt=class extends t{constructor(t){super(t)}};wt([l("Stores the original timestamp of creation"),M(),U(),ft("design:type",Date)],jt.prototype,"createdAt",void 0),wt([l("Stores the timestamp of the last update"),M(),V(),ft("design:type",Date)],jt.prototype,"updatedAt",void 0),wt([l("Stores the version of the model"),M(),v(),ft("design:type",Number)],jt.prototype,"version",void 0),jt=wt([u(xt),ft("design:paramtypes",[Object])],jt);let _t=class extends jt{constructor(t){super(t)}};wt([l("Stores the creator"),M(),Q(),ft("design:type",String)],_t.prototype,"createdBy",void 0),wt([l("Stores the user that last updated the model"),M(),H(),ft("design:type",String)],_t.prototype,"updatedBy",void 0),_t=wt([u(xt),ft("design:paramtypes",[Object])],_t);let qt=class extends K{constructor(t){super(t)}};wt([l("Unique identifier of the credentials record"),M(),Y(),ft("design:type",String)],qt.prototype,"id",void 0),wt([l("PEM-encoded X.509 certificate for the identity"),M(),n(),ft("design:type",String)],qt.prototype,"certificate",void 0),wt([l("PEM-encoded root or intermediate certificate"),M(),n(),ft("design:type",String)],qt.prototype,"rootCertificate",void 0),wt([l("PEM-encoded private key"),M(),n(),ft("design:type",String)],qt.prototype,"privateKey",void 0),qt=wt([s(),ft("design:paramtypes",[Object])],qt);let Lt=class extends K{constructor(t){super(t),this.type=bt.X509}};function Jt(){return function(t,e,r){const i=r.value;return r.value=async function(...t){const r=t[0],n=r.clientIdentity.getID(),s=await this.tokenRepository.select(),a=await s.execute(r);if(0==a.length)throw new w("No tokens avaialble");if(a.length>1)throw new w("To many token available : "+a.length);if(a[0].owner!=n)throw new q(`User not authorized to run ${e} on the token`);return await i.apply(this,t)},r}}function Mt(t,e){const r=t+e;if(t!==r-e||e!==r-t)throw new Pt(`Addition overflow: ${t} + ${e}`);return r}function Ut(t,e){const r=t-e;if(t!==r+e||e!==t-r)throw new Pt(`Subtraction overflow: ${t} - ${e}`);return r}wt([l("Unique identifier of the identity"),Y(),ft("design:type",String)],Lt.prototype,"id",void 0),wt([X(qt,{update:G.CASCADE,delete:G.CASCADE}),ft("design:type",qt)],Lt.prototype,"credentials",void 0),wt([M(),n(),W(),ft("design:type",String)],Lt.prototype,"mspId",void 0),wt([M(),n(),ft("design:type",String)],Lt.prototype,"type",void 0),Lt=wt([s(),ft("design:paramtypes",[Object])],Lt),ct()(Date);class Vt extends lt{static{this.adapter=new Bt}static{this.serializer=new Dt}constructor(t,e){super(t),this.clazz=e,this.initialized=!1,this.repo=P.forModel(e)}async listBy(t,e,r,...i){const{ctxArgs:n,log:s}=(await this.logCtx([...i,t],E.LIST_BY,!0)).for(this.listBy);return s.info(`Running listBy key ${e}, order ${r} and args ${n}`),this.repo.listBy(e,r,...n)}async paginateBy(t,e,r,i={offset:1,limit:10},...n){const{ctxArgs:s,log:a}=(await this.logCtx([...n,t],E.PAGE_BY,!0)).for(this.paginateBy);return a.info(`Running paginateBy key ${e}, order ${r} with size ${i.limit} and args ${s}`),this.repo.paginateBy(e,r,i,...s)}async findOneBy(t,e,r,...i){const{ctxArgs:n,log:s}=(await this.logCtx([...i,t],E.FIND_ONE_BY,!0)).for(this.findOneBy);return s.info(`Running findOneBy key ${e}, value: ${r} with args ${n}`),this.repo.findOneBy(e,r,...n)}async statement(t,e,...r){const{ctxArgs:i,log:n}=(await this.logCtx([...r,t],C.STATEMENT,!0)).for(this.statement);return n.info(`Running statement ${e} with args ${i}`),this.repo.statement(e,...i)}async create(e,r,...i){const{log:n,ctxArgs:s}=(await this.logCtx([...i,e],d.CREATE,!0)).for(this.create);n.info("CONTRACT CREATE, "+s),"string"==typeof r&&(r=this.deserialize(r)),n.info("Creating model: "+JSON.stringify(r));const a=this.getTransientData(e);return n.info("Merging transient data..."),r=t.merge(r,a,this.clazz),this.repo.create(r,...s)}async read(t,e,...r){const{log:i,ctxArgs:n}=(await this.logCtx([...r,t],d.READ,!0)).for(this.create);return i.info(`reading entry with pk ${e} `),this.repo.read(e,...n)}getTransientData(t){const e=t.stub.getTransient();let r={};return e.has(this.repo.tableName)&&(r=JSON.parse(e.get(this.repo.tableName)?.toString("utf8"))),r}async update(e,r,...i){const{log:n,ctxArgs:s}=(await this.logCtx([...i,e],d.UPDATE,!0)).for(this.update);"string"==typeof r&&(r=this.deserialize(r)),n.info("Updating model: "+JSON.stringify(r));const a=this.getTransientData(e);return n.info("Merging transient data..."),r=t.merge(r,a,this.clazz),this.repo.update(r,...s)}async delete(t,e,...r){const{log:i,ctxArgs:n}=(await this.logCtx([...r,t],d.DELETE,!0)).for(this.delete);return i.info(`deleting entry with pk ${e} `),this.repo.delete(e+"",...n)}async deleteAll(t,e,...r){const{ctxArgs:i}=(await this.logCtx([...r,t],g.DELETE_ALL,!0)).for(this.deleteAll);return"string"==typeof e&&(e=JSON.parse(e)),this.repo.deleteAll(e,...i)}async readAll(t,e,...r){const{ctxArgs:i}=(await this.logCtx([...r,t],g.READ_ALL,!0)).for(this.create);return"string"==typeof e&&(e=JSON.parse(e)),this.repo.readAll(e,...i)}async updateAll(t,e,...r){const{log:i,ctxArgs:n}=(await this.logCtx([...r,t],g.UPDATE_ALL,!0)).for(this.updateAll);return"string"==typeof e&&(e=JSON.parse(e).map(t=>this.deserialize(t)).map(t=>new this.clazz(t))),i.info(`updating ${e.length} entries to the table`),this.repo.updateAll(e,...n)}async query(t,e,r,i=Z.ASC,n,s,...a){const{ctxArgs:o}=(await this.logCtx([...a,t],C.QUERY,!0)).for(this.create);return this.repo.query(e,r,i,n,s,...o)}async raw(t,e,r,...i){const{ctxArgs:n}=(await this.logCtx([...i,t],"raw",!0)).for(this.raw);return Vt.adapter.raw(e,r,...n)}serialize(t){return Vt.serializer.serialize(t)}deserialize(t){return Vt.serializer.deserialize(t)}async init(t){const{log:e,ctxArgs:r}=(await this.logCtx([t],C.INITIALIZATION,!0)).for(this.init);e.info(`Running contract ${this.getName()} initialization...`),this.initialized=!0,e.info("Contract initialization completed.")}async healthcheck(t){const{log:e}=(await this.logCtx([t],"healthcheck",!0)).for(this.healthcheck);return e.info(`Running Healthcheck: ${this.initialized}...`),{healthcheck:this.initialized}}async createAll(t,e,...r){const{log:i,ctxArgs:n}=(await this.logCtx([...r,t],g.CREATE_ALL,!0)).for(this.createAll);return"string"==typeof e&&(e=JSON.parse(e).map(t=>this.deserialize(t)).map(t=>new this.clazz(t))),i.info(`adding ${e.length} entries to the table`),this.repo.createAll(e,...n)}logCtx(t,e,r=!1){const i=t.pop();if(!i||!i.stub)throw new $t("No valid context provided...");const n=Vt.adapter.logCtx([this.clazz,...t],e,r,i);function s(t){return t.ctxArgs.shift(),t}return n instanceof Promise?n.then(s):s(n)}}class Qt extends Vt{constructor(t,e){super(t,e)}async create(t,e){return this.serialize(await super.create(t,e))}async read(t,e){return this.serialize(await super.read(t,e))}async update(t,e){return this.serialize(await super.update(t,e))}async delete(t,e){return this.serialize(await super.delete(t,e))}async deleteAll(t,e){const r=JSON.parse(e);return JSON.stringify((await super.deleteAll(t,r)).map(t=>this.serialize(t)))}async readAll(t,e){const r=JSON.parse(e);return JSON.stringify((await super.readAll(t,r)).map(t=>this.serialize(t)))}async updateAll(t,e){const r=JSON.parse(e).map(t=>this.deserialize(t)).map(t=>new this.clazz(t));return JSON.stringify((await super.updateAll(t,r)).map(t=>this.serialize(t)))}async statement(t,e,r){try{r=JSON.parse(r)}catch(t){throw new m("Invalid args: "+t)}if(!Array.isArray(r))throw new m(`Invalid args: ${JSON.stringify(r)}. must be an array`);return JSON.stringify(await super.statement(t,e,...r))}async listBy(t,e,r){return JSON.stringify(await super.listBy(t,e,r))}async paginateBy(t,e,r,i){try{i=JSON.parse(i)}catch(t){throw new m("Failed to deserialize paginateBy reference: "+t)}return JSON.stringify(await super.paginateBy(t,e,r,i))}async findOneBy(t,e,r){return JSON.stringify(await super.findOneBy(t,e,r))}async query(t,e,r,i,n,s){let a;try{a=$.from(JSON.parse(e))}catch(t){throw new m("Invalid condition: "+t)}return JSON.stringify(await super.query(t,a,r,i,n,s))}async init(t){await super.init(t)}async healthcheck(t){return JSON.stringify(await super.healthcheck(t))}async createAll(t,e){const r=JSON.parse(e).map(t=>this.deserialize(t)).map(t=>new this.clazz(t)),i=await super.createAll(t,r);return JSON.stringify(i.map(t=>this.serialize(t)))}}wt([ut(),ft("design:type",Function),ft("design:paramtypes",[pt,String]),ft("design:returntype",Promise)],Qt.prototype,"create",null),wt([ut(!1),ft("design:type",Function),ft("design:paramtypes",[pt,String]),ft("design:returntype",Promise)],Qt.prototype,"read",null),wt([ut(),ft("design:type",Function),ft("design:paramtypes",[pt,String]),ft("design:returntype",Promise)],Qt.prototype,"update",null),wt([ut(),ft("design:type",Function),ft("design:paramtypes",[pt,String]),ft("design:returntype",Promise)],Qt.prototype,"delete",null),wt([ut(),ft("design:type",Function),ft("design:paramtypes",[pt,String]),ft("design:returntype",Promise)],Qt.prototype,"deleteAll",null),wt([ut(!1),ft("design:type",Function),ft("design:paramtypes",[pt,String]),ft("design:returntype",Promise)],Qt.prototype,"readAll",null),wt([ut(),ft("design:type",Function),ft("design:paramtypes",[pt,String]),ft("design:returntype",Promise)],Qt.prototype,"updateAll",null),wt([ut(!1),ft("design:type",Function),ft("design:paramtypes",[pt,String,String]),ft("design:returntype",Promise)],Qt.prototype,"statement",null),wt([ut(!1),ft("design:type",Function),ft("design:paramtypes",[pt,String,String]),ft("design:returntype",Promise)],Qt.prototype,"listBy",null),wt([ut(!1),ft("design:type",Function),ft("design:paramtypes",[pt,String,String,String]),ft("design:returntype",Promise)],Qt.prototype,"paginateBy",null),wt([ut(!1),ft("design:type",Function),ft("design:paramtypes",[pt,String,String]),ft("design:returntype",Promise)],Qt.prototype,"findOneBy",null),wt([ut(),ft("design:type",Function),ft("design:paramtypes",[pt]),ft("design:returntype",Promise)],Qt.prototype,"init",null),wt([ut(!1),ft("design:type",Function),ft("design:paramtypes",[pt]),ft("design:returntype",Promise)],Qt.prototype,"healthcheck",null),wt([ut(),ft("design:type",Function),ft("design:paramtypes",[pt,String]),ft("design:returntype",Promise)],Qt.prototype,"createAll",null);let Ht=class extends K{constructor(t){super(t)}};wt([Y({type:String}),ft("design:type",String)],Ht.prototype,"name",void 0),wt([M(),n(),ft("design:type",String)],Ht.prototype,"owner",void 0),wt([M(),n(),ft("design:type",String)],Ht.prototype,"symbol",void 0),wt([M(),n(),ft("design:type",Number)],Ht.prototype,"decimals",void 0),Ht=wt([tt("erc20_tokens"),s(),ft("design:paramtypes",[Object])],Ht);let Yt=class extends K{constructor(t){super(t)}};wt([Y({type:String}),ft("design:type",String)],Yt.prototype,"id",void 0),wt([M(),n(),ft("design:type",String)],Yt.prototype,"token",void 0),wt([M(),n(),ft("design:type",Number)],Yt.prototype,"balance",void 0),wt([M(),ft("design:type",String)],Yt.prototype,"captive",void 0),Yt=wt([tt("erc20_wallets"),s(),ft("design:paramtypes",[Object])],Yt);let Kt=class extends K{constructor(t){super(t)}};wt([Y({type:String}),M(),n(),ft("design:type",String)],Kt.prototype,"owner",void 0),wt([M(),n(),ft("design:type",String)],Kt.prototype,"spender",void 0),wt([M(),n(),ft("design:type",Number)],Kt.prototype,"value",void 0),Kt=wt([tt("erc20_allowances"),s(),ft("design:paramtypes",[Object])],Kt);class Xt extends Vt{constructor(t){super(t,Yt),Xt.adapter=Xt.adapter||new Bt,this.walletRepository=At.forModel(Yt,Xt.adapter.alias),this.tokenRepository=At.forModel(Ht,Xt.adapter.alias),this.allowanceRepository=At.forModel(Kt,Xt.adapter.alias)}async TokenName(t){const{ctx:e}=await this.logCtx([t],this.TokenName);await this.CheckInitialized(e);const r=this.tokenRepository.select();return(await r.execute(e))[0].name}async Symbol(t){const{ctx:e}=await this.logCtx([t],this.TokenName);await this.CheckInitialized(e);const r=this.tokenRepository.select();return(await r.execute(e))[0].symbol}async Decimals(t){const{ctx:e}=await this.logCtx([t],this.TokenName);await this.CheckInitialized(e);const r=this.tokenRepository.select();return(await r.execute(e))[0].decimals}async TotalSupply(t){const{ctx:e}=await this.logCtx([t],this.TokenName);await this.CheckInitialized(e);const r=this.walletRepository.select(),i=await r.execute(e);if(0==i.length)throw new w(`The token ${this.getName()} does not exist`);let n=0;return i.forEach(t=>{n+=t.balance}),n}async BalanceOf(t,e){const{ctx:r}=await this.logCtx([t],this.TokenName);return await this.CheckInitialized(r),(await this.walletRepository.read(e,r)).balance}async Transfer(t,e,r){const{ctx:i}=await this.logCtx([t],this.Transfer);await this.CheckInitialized(i);const n=i.identity.getID();if(!await this._transfer(n,e,r,i))throw new y("Failed to transfer");return!0}async TransferFrom(t,e,r,i){const{ctx:n}=await this.logCtx([t],this.BurnFrom);await this.CheckInitialized(n);const s=n.identity.getID(),a=await this._getAllowance(e,s,n);if(!a||0>a.value)throw new Et(`spender ${s} has no allowance from ${e}`);const o=a.value;if(i>o)throw new Rt("The spender does not have enough allowance to spend.");const c=Ut(o,i),l=Object.assign({},a,{value:c});if(await this.allowanceRepository.update(l,n),!await this._transfer(e,r,i,n))throw new y("Failed to transfer");return!0}async _transfer(t,e,r,i){const n=i.logger;if(t===e)throw new q("cannot transfer to and from same client account");if(0>r)throw new Rt("transfer amount cannot be negative");const s=await this.walletRepository.read(t,i),a=s.balance;if(r>a)throw new Rt(`client account ${t} has insufficient funds.`);let o,c=!1;try{o=await this.walletRepository.read(e,i)}catch(t){if(!(t instanceof h))throw new y(t);if(404!==t.code)throw new y(t.message);o=new Yt({id:e,balance:0,token:await this.TokenName(i)}),c=!0}const l=o.balance,u=Ut(a,r),p=Mt(l,r),d=Object.assign({},s,{balance:u});await this.walletRepository.update(d,i);const g=Object.assign({},o,{balance:p});c?await this.walletRepository.create(g,i):await this.walletRepository.update(g,i);const w={from:t,to:e,value:r};return this.repo.refresh(Ht,Ft.TRANSFER,"",w,i).catch(t=>n.error("Failed to notify transfer: "+t)),!0}async Approve(t,e,r){const{ctx:i,ctxArgs:n}=await this.logCtx([t],this.Approve);await this.CheckInitialized(i);const s=i.identity.getID();let a=await this._getAllowance(s,e,i);if((await this.walletRepository.read(s,...n)).balance<r)throw new Rt(`client account ${s} has insufficient funds.`);a?(a.value=r,await this.allowanceRepository.update(a,...n)):(a=new Kt({owner:s,spender:e,value:r}),await this.allowanceRepository.create(a,...n));const o={owner:s,spender:e,value:r};return this.repo.refresh(Ht,Ft.APPROVAL,"",o,i),!0}async Allowance(t,e,r){const{ctx:i}=await this.logCtx([t],this.Allowance);await this.CheckInitialized(i);const n=await this._getAllowance(e,r,i);if(!n)throw new Et(`spender ${r} has no allowance from ${e}`);return n.value}async _getAllowance(t,e,r){const i=$.and($.attribute("owner").eq(t),$.attribute("spender").eq(e)),n=await this.allowanceRepository.select().where(i).execute(r);return n?.[0]}async Initialize(t,e){const{ctx:r}=await this.logCtx([t],this.Initialize);if((await this.tokenRepository.select().execute(r)).length>0)throw new q("contract options are already set, client is not authorized to change them");return e.owner=r.identity.getID(),await this.tokenRepository.create(e,r),!0}async CheckInitialized(t){const{ctx:e}=await this.logCtx([t],this.CheckInitialized);if(0==(await this.tokenRepository.select().execute(e)).length)throw new zt("contract options need to be set before calling any function, call Initialize() to initialize contract")}async Mint(t,e){const{ctx:r}=await this.logCtx([t],this.Mint);await this.CheckInitialized(r);const i=r.identity.getID();if(0>=e)throw new A("mint amount must be a positive integer");let n;try{n=await this.walletRepository.read(i,r);const t=Mt(n.balance,e),s=Object.assign({},n,{balance:t});await this.walletRepository.update(s,r)}catch(n){if(!(n instanceof h))throw new y(n);if(404!==n.code)throw new y(n.message);{const n=new Yt({id:i,balance:e,token:await this.TokenName(t)});await this.walletRepository.create(n,r)}}const s={from:"0x0",to:i,value:e};this.repo.ObserverHandler().updateObservers(Ht,Ft.TRANSFER,"",s,r)}async Burn(t,e){const{log:r,ctx:i}=await this.logCtx([t],this.Burn);await this.CheckInitialized(i);const n=i.identity.getID(),s=await this.walletRepository.read(n,i),a=s.balance;if(e>a)throw new Rt("Minter has insufficient funds.");const o=Ut(a,e),c=Object.assign({},s,{balance:o});await this.walletRepository.update(c,i),r.info(e+" tokens were burned");const l={from:n,to:"0x0",value:e};this.repo.ObserverHandler().updateObservers(Ht,Ft.TRANSFER,"",l,i)}async BurnFrom(t,e,r){const{log:i,ctx:n}=await this.logCtx([t],this.BurnFrom);await this.CheckInitialized(n);const s=await this.walletRepository.read(e,n),a=s.balance;if(r>a)throw new Rt(e+" has insufficient funds.");const o=Ut(a,r),c=Object.assign({},s,{balance:o});await this.walletRepository.update(c,n),i.info(`${r} tokens were burned from ${e}`);const l={from:e,to:"0x0",value:r};this.repo.ObserverHandler().updateObservers(Ht,Ft.TRANSFER,"",l,n)}async ClientAccountBalance(t){const{ctx:e}=await this.logCtx([t],this.TokenName);await this.CheckInitialized(e);const r=e.identity.getID(),i=await this.walletRepository.read(r,e);if(!i)throw new Rt(`The account ${r} does not exist`);return i.balance}async ClientAccountID(t){const{ctx:e}=await this.logCtx([t],this.ClientAccountID);return await this.CheckInitialized(e),e.identity.getID()}}wt([ut(!1),ft("design:type",Function),ft("design:paramtypes",[pt]),ft("design:returntype",Promise)],Xt.prototype,"TokenName",null),wt([ut(!1),ft("design:type",Function),ft("design:paramtypes",[pt]),ft("design:returntype",Promise)],Xt.prototype,"Symbol",null),wt([ut(!1),ft("design:type",Function),ft("design:paramtypes",[pt]),ft("design:returntype",Promise)],Xt.prototype,"Decimals",null),wt([ut(!1),ft("design:type",Function),ft("design:paramtypes",[pt]),ft("design:returntype",Promise)],Xt.prototype,"TotalSupply",null),wt([ut(!1),ft("design:type",Function),ft("design:paramtypes",[pt,String]),ft("design:returntype",Promise)],Xt.prototype,"BalanceOf",null),wt([ut(),ft("design:type",Function),ft("design:paramtypes",[pt,String,Number]),ft("design:returntype",Promise)],Xt.prototype,"Transfer",null),wt([ut(),ft("design:type",Function),ft("design:paramtypes",[pt,String,String,Number]),ft("design:returntype",Promise)],Xt.prototype,"TransferFrom",null),wt([ut(),ft("design:type",Function),ft("design:paramtypes",[pt,String,Number]),ft("design:returntype",Promise)],Xt.prototype,"Approve",null),wt([ut(!1),ft("design:type",Function),ft("design:paramtypes",[pt,String,String]),ft("design:returntype",Promise)],Xt.prototype,"Allowance",null),wt([ut(),ft("design:type",Function),ft("design:paramtypes",[pt,Ht]),ft("design:returntype",Promise)],Xt.prototype,"Initialize",null),wt([ut(!1),ft("design:type",Function),ft("design:paramtypes",[pt]),ft("design:returntype",Promise)],Xt.prototype,"CheckInitialized",null),wt([Jt(),ut(),ft("design:type",Function),ft("design:paramtypes",[pt,Number]),ft("design:returntype",Promise)],Xt.prototype,"Mint",null),wt([Jt(),ut(),ft("design:type",Function),ft("design:paramtypes",[pt,Number]),ft("design:returntype",Promise)],Xt.prototype,"Burn",null),wt([Jt(),ut(),ft("design:type",Function),ft("design:paramtypes",[pt,String,Number]),ft("design:returntype",Promise)],Xt.prototype,"BurnFrom",null),wt([ut(!1),ft("design:type",Function),ft("design:paramtypes",[pt]),ft("design:returntype",Promise)],Xt.prototype,"ClientAccountBalance",null),wt([ut(!1),ft("design:type",Function),ft("design:paramtypes",[pt]),ft("design:returntype",Promise)],Xt.prototype,"ClientAccountID",null);const Gt=[Xt];class Wt extends gt{constructor(t,e,r){super(t,e),r?(this.logger=r.logging.getLogger(t),r.logging.setLevel(e?.level||dt.getConfig().level)):this.logger=new gt(t,e)}log(t,e,r){if(ht[this.config("level")]<ht[t])return;let i;switch(t){case yt.benchmark:i=this.logger.verbose;break;case yt.info:i=this.logger.info;break;case yt.verbose:i=this.logger.verbose;break;case yt.debug:i=this.logger.debug;break;case yt.error:i=this.logger.error;break;case yt.trace:i=this.logger.trace;break;case yt.warn:i=this.logger.warn;break;case yt.silly:i=this.logger.silly;break;default:throw new y("Invalid log level")}i.call(this.logger,this.createLog(t,e,r))}}dt.setFactory((t,e,r)=>new Wt(t||Wt.name,e||{},r));const Zt="##VERSION##",te="##PACKAGE##";a.registerLibrary(te,Zt);export{Wt as ContractLogger,Bt as FabricContractAdapter,St as FabricContractContext,Nt as FabricContractPaginator,At as FabricContractRepository,vt as FabricContractRepositoryObservableHandler,Vt as FabricCrudContract,Ct as FabricStatement,te as PACKAGE_NAME,Qt as SerializedCrudContract,Zt as VERSION,Gt as contracts,Tt as createdByOnFabricCreateUpdate,It as pkFabricOnCreate};
|
|
2
2
|
//# sourceMappingURL=for-fabric.js.map
|
package/dist/for-fabric.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"for-fabric.js","sources":["../src/shared/constants.ts","../src/shared/overrides/overrides.ts","../src/contracts/ContractContext.ts","../src/contracts/FabricContractRepositoryObservableHandler.ts","../src/shared/events.ts","../src/contracts/FabricContractRepository.ts","../src/contracts/FabricContractStatement.ts","../src/contracts/FabricContractSequence.ts","../src/shared/SimpleDeterministicSerializer.ts","../src/contracts/FabricContractPaginator.ts","../src/shared/errors.ts","../src/contracts/ContractAdapter.ts","../src/shared/DeterministicSerializer.ts","../src/shared/erc20/erc20-constants.ts","../src/shared/model/FabricBaseModel.ts","../src/shared/model/FabricIdentifiedBaseModel.ts","../src/shared/model/IdentityCredentials.ts","../src/shared/model/Identity.ts","../src/client/crypto.ts","../src/shared/decorators.ts","../src/shared/math.ts","../src/contracts/crud/crud-contract.ts","../src/contracts/crud/serialized-crud-contract.ts","../src/contracts/erc20/models.ts","../src/contracts/erc20/erc20contract.ts","../src/contracts/erc20/index.ts","../src/contracts/logging.ts","../src/version.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["FabricModelKeys","IdentityType","FabricFlavour","Model","prototype","isShared","this","constructor","isPrivate","segregate","model","isTransient","decoratedProperties","Metadata","validatableProperties","transientProps","get","DBKeys","TRANSIENT","privateProperties","PRIVATE","sharedProperties","result","transient","private","shared","transientKeys","Object","keys","privateKeys","sharedKeys","key","includes","build","name","bind","tableName","target","PersistenceKeys","TABLE","SHARED","FabricContractContext","Context","super","stub","timestamp","getDateTimestamp","identity","toString","FabricContractRepositoryObservableHandler","ObserverHandler","supportedEvents","OperationKeys","CREATE","UPDATE","DELETE","BulkCrudOperationKeys","CREATE_ALL","UPDATE_ALL","DELETE_ALL","updateObservers","clazz","event","id","args","log","ctx","Adapter","logCtx","owner","payload","table","indexOf","debug","eventName","params","push","join","generateFabricEventName","setEvent","Buffer","from","JSON","stringify","FabricContractRepository","Repository","adapter","trackedEvents","_overrides","assign","ignoreValidation","ignoreHandlers","allowRawStatements","forcePrepareSimpleQueries","forcePrepareComplexQueries","paginateBy","order","ref","offset","limit","bookmark","QueryError","ctxArgs","PreparedStatementKeys","PAGE_BY","for","paginator","verbose","class","override","select","where","attr","pk","gt","orderBy","paginate","paged","page","serialize","statement","STATEMENT","statements","logger","info","e","BaseError","InternalError","FabricStatement","CouchDBStatement","executionPrefix","method","newArgs","filter","Boolean","length","raw","rawInput","results","pkAttr","fromSelector","type","ID","selectSelector","map","r","processRecord","selectors","CouchDBKeys","query","selector","fields","whereCondition","condition","parseCondition","Condition","and","attribute","eq","selectorKeys","values","CouchDBGroupOperator","AND","reduce","accum","val","Error","k","OR","s","entries","forEach","orderBySelector","sort","value","rec","CouchDBOperator","BIGGER","limitSelector","offsetSelector","skip","FabricContractSequence","Sequence","options","current","READ","startWith","sequence","repo","read","parse","NotFoundError","cachedCurrent","increment","count","incrementBy","lock","execute","async","toIncrementBy","typeName","currentValue","returnAndCache","res","Promise","cache","put","performUpsert","next","update","SequenceModel","create","UUID","instance","generate","ConflictError","base","Number","BigInt","String","Serial","incrementSerial","seq","SimpleDeterministicSerializer","JSONSerializer","deserialize","str","putAnchor","require","sortKeysRecursive","preSerialize","toSerialize","metadata","modelName","error","undefined","obj","Array","isArray","ModelKeys","ANCHOR","relations","call","FabricContractPaginator","CouchDBPaginator","size","prepare","rawStatement","isPreparedStatement","pagePrepared","_recordCount","_totalPages","validatePage","countResults","MAX_VALUE","Math","ceil","_bookmark","PagingError","rawResult","docs","nextBookmark","warning","warn","d","revert","parseValue","_currentPage","OverflowError","msg","BalanceError","AllowanceError","MissingContextError","NotInitializedError","createdByOnFabricCreateUpdate","context","data","user","getID","UnsupportedError","pkFabricOnCreate","sequenceName","defineProperty","enumerable","writable","configurable","FabricContractAdapter","CouchDBAdapter","getClient","textDecoder","TextDecoder","serializer","repository","Paginator","scope","alias","config","composedKey","createCompositeKey","putState","parseError","readState","delete","deleteState","forPrivate","collection","toOverride","queryResult","queryResultPaginated","fn","Proxy","prop","receiver","apply","thisArg","argsList","putPrivateData","deletePrivateData","getPrivateData","getPrivateDataQueryResult","iterator","reachedBookmark","lastKey","recordKey","recordValue","Key","Record","close","fetchedRecordsCount","done","Reflect","SerializationError","silly","getState","getQueryResult","_id","$gt","$gte","getQueryResultWithPagination","mergeModels","extract","finalModel","pop","decode","buffer","flags","operation","baseFlags","segregated","clientIdentity","Logging","logLevel","correlationId","getTxID","index","models","resolve","resultIterator","isHistory","allResults","jsonRes","TxId","txId","Timestamp","Value","err","docsOnly","Statement","createAll","tableLabel","all","i","updateAll","split","mappedProp","columnName","isReserved","record","ob","m","createPrefix","updatePrefix","createAllPrefix","ids","records","updateAllPrefix","reason","allowCreate","overrides","then","message","BadRequestError","MigrationError","ObserverError","AuthorizationError","ForbiddenError","ConnectionError","decoration","Decoration","flavouredAs","CREATED_BY","define","onCreate","propMetadata","UPDATED_BY","onCreateUpdate","COLUMN","extend","FabricProperty","ValidationKeys","DATE","Property","chain","constr","getPrototypeOf","FabricObject","setCurrent","DeterministicSerializer","self","o","deserialization","className","ERC20Events","FabricBaseModel","arg","__decorate","description","column","createdAt","Date","updatedAt","version","uses","FabricIdentifiedBaseModel","createdBy","updatedBy","IdentityCredentials","BaseModel","required","Identity","X509","oneToOne","Cascade","CASCADE","crypto","Crypto","BASE_ALPHABET","CRYPTO","x509","cryptoProvider","set","BaseEncoder","alphabet","baseMap","Uint8Array","j","x","charAt","xc","charCodeAt","leader","factor","iFactor","encode","source","ArrayBuffer","isView","byteOffset","byteLength","zeroes","pbegin","pend","b58","carry","it1","it2","repeat","decodeUnsafe","psz","b256","it3","it4","vch","CryptoUtils","b58encoder","BASE58","MiniLogger","fabricIdFromCertificate","certificate","stringFormat","cert","X509Certificate","subject","issuer","replaceAll","decoded","stringToArrayBuffer","buf","bufView","strLen","extractKey","pem","usages","subtle","replace","RegExp","toUpperCase","binaryDer","importKey","namedCurve","extractPrivateKey","extractPublicKey","sign","privateKey","buff","hash","b","padStart","verify","signature","publicKey","export","encrypt","getSubtleCrypto","isBrowser","globalThis","window","decrypt","getMaster","textEncoder","TextEncoder","genGenesis","randomUUID","KEY_ALGORYTHM","iv","getDerivationKey","salt","saltBuffer","saltHashed","digest","HASH","iterations","ITERATIONS","derivation","deriveBits","KEYLENGTH","getKey","derivedKey","slice","ALGORYTHM","encryptPin","text","keyObject","textBuffer","decryptPin","encryptedText","decryptedText","Owner","propertyKey","descriptor","originalMethod","acountId","tokens","add","a","c","sub","FabricCrudContract","Contract","initialized","forModel","listBy","LIST_BY","findOneBy","FIND_ONE_BY","getTransientData","merge","transientMap","getTransient","has","deleteAll","readAll","READ_ALL","OrderDirection","ASC","QUERY","init","INITIALIZATION","getName","healthcheck","contextualized","squashArgs","shift","SerializedCrudContract","parsedKeys","modelList","cond","Transaction","Ctx","ERC20Token","ERC20Wallet","Allowance","FabricERC20Contract","walletRepository","tokenRepository","allowanceRepository","TokenName","CheckInitialized","Symbol","symbol","Decimals","decimals","TotalSupply","wallets","total","wallet","balance","BalanceOf","Transfer","to","_transfer","TransferFrom","BurnFrom","spender","allowance","_getAllowance","currentAllowance","updatedAllowance","newAllowance","fromWallet","fromBalance","toWallet","newToWallet","code","token","toBalance","fromUpdatedBalance","toUpdatedBalance","updatedFromWallet","updatedToWallet","transferEvent","refresh","TRANSFER","catch","Approve","approvalEvent","APPROVAL","allowanceCondition","Initialize","Mint","amount","minter","ValidationError","minterWallet","updatedBalance","updatedminter","newWallet","Burn","currentBalance","account","accountWallet","updatedaccount","ClientAccountBalance","clientAccountID","clientWallet","ClientAccountID","__metadata","contracts","ContractLogger","conf","logging","getLogger","setLevel","level","getConfig","stack","NumericLogLevels","LogLevel","benchmark","trace","createLog","setFactory","object","VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"for-fabric.js","sources":["../src/shared/constants.ts","../src/shared/overrides/overrides.ts","../src/contracts/ContractContext.ts","../src/contracts/FabricContractRepositoryObservableHandler.ts","../src/shared/events.ts","../src/contracts/FabricContractRepository.ts","../src/contracts/FabricContractStatement.ts","../src/contracts/FabricContractSequence.ts","../src/shared/SimpleDeterministicSerializer.ts","../src/contracts/FabricContractPaginator.ts","../src/shared/errors.ts","../src/contracts/ContractAdapter.ts","../src/shared/DeterministicSerializer.ts","../src/shared/erc20/erc20-constants.ts","../src/shared/model/FabricBaseModel.ts","../src/shared/model/FabricIdentifiedBaseModel.ts","../src/shared/model/IdentityCredentials.ts","../src/shared/model/Identity.ts","../src/shared/decorators.ts","../src/shared/math.ts","../src/contracts/crud/crud-contract.ts","../src/contracts/crud/serialized-crud-contract.ts","../src/contracts/erc20/models.ts","../src/contracts/erc20/erc20contract.ts","../src/contracts/erc20/index.ts","../src/contracts/logging.ts","../src/version.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["FabricModelKeys","IdentityType","FabricFlavour","Model","prototype","isShared","this","constructor","isPrivate","segregate","model","isTransient","decoratedProperties","Metadata","validatableProperties","transientProps","get","DBKeys","TRANSIENT","privateProperties","PRIVATE","sharedProperties","result","transient","private","shared","transientKeys","Object","keys","privateKeys","sharedKeys","key","includes","build","name","bind","tableName","target","PersistenceKeys","TABLE","SHARED","FabricContractContext","Context","super","stub","timestamp","getDateTimestamp","identity","toString","FabricContractRepositoryObservableHandler","ObserverHandler","supportedEvents","OperationKeys","CREATE","UPDATE","DELETE","BulkCrudOperationKeys","CREATE_ALL","UPDATE_ALL","DELETE_ALL","updateObservers","clazz","event","id","args","log","ctx","Adapter","logCtx","owner","payload","table","indexOf","debug","eventName","params","push","join","generateFabricEventName","setEvent","Buffer","from","JSON","stringify","FabricContractRepository","Repository","adapter","trackedEvents","_overrides","assign","ignoreValidation","ignoreHandlers","allowRawStatements","forcePrepareSimpleQueries","forcePrepareComplexQueries","paginateBy","order","ref","offset","limit","bookmark","QueryError","ctxArgs","PreparedStatementKeys","PAGE_BY","for","paginator","verbose","class","override","select","where","attr","pk","gt","orderBy","paginate","paged","page","serialize","statement","STATEMENT","statements","logger","info","e","BaseError","InternalError","FabricStatement","CouchDBStatement","executionPrefix","method","newArgs","filter","Boolean","length","raw","rawInput","results","pkAttr","fromSelector","type","ID","selectSelector","map","r","processRecord","selectors","CouchDBKeys","query","selector","fields","whereCondition","condition","parseCondition","Condition","and","attribute","eq","selectorKeys","values","CouchDBGroupOperator","AND","reduce","accum","val","Error","k","OR","s","entries","forEach","orderBySelector","sort","value","rec","CouchDBOperator","BIGGER","limitSelector","offsetSelector","skip","FabricContractSequence","Sequence","options","current","READ","startWith","sequence","repo","read","parse","NotFoundError","cachedCurrent","increment","count","incrementBy","lock","execute","async","toIncrementBy","typeName","currentValue","returnAndCache","res","Promise","cache","put","performUpsert","next","update","SequenceModel","create","UUID","instance","generate","ConflictError","base","Number","BigInt","String","Serial","incrementSerial","seq","SimpleDeterministicSerializer","JSONSerializer","deserialize","str","putAnchor","require","sortKeysRecursive","preSerialize","toSerialize","metadata","modelName","error","undefined","obj","Array","isArray","ModelKeys","ANCHOR","relations","call","FabricContractPaginator","CouchDBPaginator","size","prepare","rawStatement","isPreparedStatement","pagePrepared","_recordCount","_totalPages","validatePage","countResults","MAX_VALUE","Math","ceil","_bookmark","PagingError","rawResult","docs","nextBookmark","warning","warn","d","revert","parseValue","_currentPage","OverflowError","msg","BalanceError","AllowanceError","MissingContextError","NotInitializedError","createdByOnFabricCreateUpdate","context","data","user","getID","UnsupportedError","pkFabricOnCreate","sequenceName","defineProperty","enumerable","writable","configurable","FabricContractAdapter","CouchDBAdapter","getClient","textDecoder","TextDecoder","serializer","repository","Paginator","scope","alias","config","composedKey","createCompositeKey","putState","parseError","readState","delete","deleteState","forPrivate","collection","toOverride","queryResult","queryResultPaginated","fn","Proxy","prop","receiver","apply","thisArg","argsList","putPrivateData","deletePrivateData","getPrivateData","getPrivateDataQueryResult","iterator","reachedBookmark","lastKey","recordKey","recordValue","Key","Record","close","fetchedRecordsCount","done","Reflect","SerializationError","silly","getState","getQueryResult","_id","$gt","$gte","getQueryResultWithPagination","mergeModels","extract","finalModel","pop","decode","buffer","flags","operation","baseFlags","segregated","clientIdentity","Logging","logLevel","correlationId","getTxID","index","models","resolve","resultIterator","isHistory","allResults","jsonRes","TxId","txId","Timestamp","Value","err","docsOnly","Statement","createAll","tableLabel","all","i","updateAll","split","mappedProp","columnName","isReserved","record","ob","m","createPrefix","updatePrefix","createAllPrefix","ids","records","updateAllPrefix","reason","allowCreate","overrides","then","message","BadRequestError","MigrationError","ObserverError","AuthorizationError","ForbiddenError","ConnectionError","decoration","Decoration","flavouredAs","CREATED_BY","define","onCreate","propMetadata","UPDATED_BY","onCreateUpdate","COLUMN","extend","FabricProperty","ValidationKeys","DATE","Property","chain","constr","getPrototypeOf","FabricObject","setCurrent","DeterministicSerializer","self","o","deserialization","className","ERC20Events","FabricBaseModel","arg","__decorate","description","column","createdAt","Date","updatedAt","version","uses","FabricIdentifiedBaseModel","createdBy","updatedBy","IdentityCredentials","BaseModel","required","Identity","X509","Owner","propertyKey","descriptor","originalMethod","acountId","tokens","add","a","b","c","sub","oneToOne","Cascade","CASCADE","FabricCrudContract","Contract","initialized","forModel","listBy","LIST_BY","findOneBy","FIND_ONE_BY","getTransientData","merge","transientMap","getTransient","has","deleteAll","readAll","READ_ALL","OrderDirection","ASC","QUERY","init","INITIALIZATION","getName","healthcheck","contextualized","squashArgs","shift","SerializedCrudContract","parsedKeys","modelList","cond","Transaction","Ctx","ERC20Token","ERC20Wallet","Allowance","FabricERC20Contract","walletRepository","tokenRepository","allowanceRepository","TokenName","CheckInitialized","Symbol","symbol","Decimals","decimals","TotalSupply","wallets","total","wallet","balance","BalanceOf","Transfer","to","_transfer","TransferFrom","BurnFrom","spender","allowance","_getAllowance","currentAllowance","updatedAllowance","newAllowance","fromWallet","fromBalance","toWallet","newToWallet","code","token","toBalance","fromUpdatedBalance","toUpdatedBalance","updatedFromWallet","updatedToWallet","transferEvent","refresh","TRANSFER","catch","Approve","approvalEvent","APPROVAL","allowanceCondition","Initialize","Mint","amount","minter","ValidationError","minterWallet","updatedBalance","updatedminter","newWallet","Burn","currentBalance","account","accountWallet","updatedaccount","ClientAccountBalance","clientAccountID","clientWallet","ClientAccountID","__metadata","contracts","ContractLogger","MiniLogger","conf","logging","getLogger","setLevel","level","getConfig","stack","NumericLogLevels","LogLevel","benchmark","trace","createLog","setFactory","object","VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
|
|
@@ -10,7 +10,6 @@ export * from "./model";
|
|
|
10
10
|
export * from "./overrides";
|
|
11
11
|
export * from "./ClientSerializer";
|
|
12
12
|
export * from "./constants";
|
|
13
|
-
export * from "../client/crypto";
|
|
14
13
|
export * from "./decorators";
|
|
15
14
|
export * from "./DeterministicSerializer";
|
|
16
15
|
export * from "./errors";
|
package/lib/esm/shared/index.js
CHANGED
|
@@ -10,7 +10,6 @@ export * from "./model/index.js";
|
|
|
10
10
|
export * from "./overrides/index.js";
|
|
11
11
|
export * from "./ClientSerializer.js";
|
|
12
12
|
export * from "./constants.js";
|
|
13
|
-
export * from "./../client/crypto.js";
|
|
14
13
|
export * from "./decorators.js";
|
|
15
14
|
export * from "./DeterministicSerializer.js";
|
|
16
15
|
export * from "./errors.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/shared/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,iCAAwB;AACxB,sCAA6B;AAC7B,iCAAwB;AACxB,qCAA4B;AAC5B,sCAAmC;AACnC,+BAA4B;AAC5B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/shared/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,iCAAwB;AACxB,sCAA6B;AAC7B,iCAAwB;AACxB,qCAA4B;AAC5B,sCAAmC;AACnC,+BAA4B;AAC5B,gCAA6B;AAC7B,6CAA0C;AAC1C,4BAAyB;AACzB,4BAAyB;AACzB,kCAA+B;AAC/B,0BAAuB;AACvB,mDAAgD;AAChD,2BAAwB"}
|
package/lib/esm/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "0.1.
|
|
1
|
+
export declare const VERSION = "0.1.53";
|
|
2
2
|
export declare const PACKAGE_NAME = "@decaf-ts/for-fabric";
|
package/lib/esm/version.js
CHANGED
package/lib/shared/index.cjs
CHANGED
|
@@ -26,7 +26,6 @@ __exportStar(require("./model/index.cjs"), exports);
|
|
|
26
26
|
__exportStar(require("./overrides/index.cjs"), exports);
|
|
27
27
|
__exportStar(require("./ClientSerializer.cjs"), exports);
|
|
28
28
|
__exportStar(require("./constants.cjs"), exports);
|
|
29
|
-
__exportStar(require("./../client/crypto.cjs"), exports);
|
|
30
29
|
__exportStar(require("./decorators.cjs"), exports);
|
|
31
30
|
__exportStar(require("./DeterministicSerializer.cjs"), exports);
|
|
32
31
|
__exportStar(require("./errors.cjs"), exports);
|
package/lib/shared/index.d.ts
CHANGED
|
@@ -10,7 +10,6 @@ export * from "./model";
|
|
|
10
10
|
export * from "./overrides";
|
|
11
11
|
export * from "./ClientSerializer";
|
|
12
12
|
export * from "./constants";
|
|
13
|
-
export * from "../client/crypto";
|
|
14
13
|
export * from "./decorators";
|
|
15
14
|
export * from "./DeterministicSerializer";
|
|
16
15
|
export * from "./errors";
|
package/lib/shared/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/shared/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;;GAKG;AACH,oDAAwB;AACxB,yDAA6B;AAC7B,oDAAwB;AACxB,wDAA4B;AAC5B,yDAAmC;AACnC,kDAA4B;AAC5B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/shared/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;;GAKG;AACH,oDAAwB;AACxB,yDAA6B;AAC7B,oDAAwB;AACxB,wDAA4B;AAC5B,yDAAmC;AACnC,kDAA4B;AAC5B,mDAA6B;AAC7B,gEAA0C;AAC1C,+CAAyB;AACzB,+CAAyB;AACzB,qDAA+B;AAC/B,6CAAuB;AACvB,sEAAgD;AAChD,8CAAwB"}
|