@decaf-ts/for-fabric 0.1.6 → 0.1.7

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.
@@ -1,2 +1,2 @@
1
- import{CouchDBStatement as t,CouchDBKeys as e,CouchDBGroupOperator as r,CouchDBOperator as i,CouchDBAdapter as a}from"@decaf-ts/for-couchdb";import{Model as s,required as n,model as o,JSONSerializer as l,type as c,list as u}from"@decaf-ts/decorator-validation";import{Context as p,OperationKeys as d,BulkCrudOperationKeys as h,DBKeys as g,NotFoundError as y,InternalError as w,SerializationError as f,onCreate as m,onCreateUpdate as b,readonly as x,onUpdate as v,onDelete as A,afterAny as S,BaseError as C,ValidationError as O}from"@decaf-ts/db-decorators";import{Property as k,Object as N,Contract as E,Context as z,Transaction as R}from"fabric-contract-api";import{ObserverHandler as T,Adapter as P,Repository as I,Condition as D,pk as $,index as F,table as j,BaseModel as B,Sequence as _,repositoryFromTypeMetadata as L,cacheModelForPopulate as J,Cascade as q,createOrUpdate as M,getPopulateKey as U,UnsupportedError as Y,PersistenceKeys as V,relation as H,oneToManyOnUpdate as K,column as Q,AuthorizationError as G}from"@decaf-ts/core";import{Logging as W,MiniLogger as X,NumericLogLevels as Z,LogLevel as tt}from"@decaf-ts/logging";import{Metadata as et,Decoration as rt,propMetadata as it,apply as at,prop as st}from"@decaf-ts/decoration";import{__decorate as nt,__metadata as ot}from"tslib";class lt extends p{constructor(){super()}get stub(){return this.get("stub")}get timestamp(){return this.stub.getDateTimestamp()}get identity(){return this.get("identity")}}class ct extends T{constructor(t=[d.CREATE,d.UPDATE,d.DELETE,h.CREATE_ALL,h.UPDATE_ALL,h.DELETE_ALL]){super(),this.supportedEvents=t}async updateObservers(t,e,r,...i){const{log:a,ctx:s}=P.logCtx(i,this.updateObservers),{stub:n}=s,[o,l]=i,c="string"==typeof t?t:t.name;if(-1!==this.supportedEvents.indexOf(e)){a.debug(`Emitting ${e} event`);const t=((t,e,r)=>{const i=[t,e];return r&&i.push(r),i.join("_")})(c,e,o);n.setEvent(t,Buffer.from(JSON.stringify({id:r})))}else n.setEvent(e,Buffer.from(JSON.stringify(l)))}}class ut extends I{constructor(t,e,r){super(t,e),this.trackedEvents=r}logFor(t){return t.logger?t.logger:W.for(this,{correlationId:t.stub.getTxID()},t)}ObserverHandler(){return new ct}async updateObservers(t,e,r,...i){if(!this.trackedEvents||-1!==this.trackedEvents.indexOf(e))return await super.updateObservers(t,e,r,...i)}}class pt extends t{constructor(t){super(t)}async raw(t,...e){const{ctx:r}=this.logCtx(e,this.raw),i=await this.adapter.raw(t,!0,r),a=s.pk(this.fromSelector),n=et.get(this.fromSelector,et.key(g.ID,a))?.type;return this.selectSelector?i:i.map(t=>this.processRecord(t,a,n,r))}build(){const t={};t[e.TABLE]={},t[e.TABLE]=s.tableName(this.fromSelector);const a={selector:t};if(this.selectSelector&&(a.fields=this.selectSelector),this.whereCondition){const t=this.parseCondition(D.and(this.whereCondition,D.attribute(e.TABLE).eq(a.selector[e.TABLE]))).selector,i=Object.keys(t);if(1===i.length&&-1!==Object.values(r).indexOf(i[0]))switch(i[0]){case r.AND:t[r.AND]=[...Object.values(t[r.AND]).reduce((t,e)=>{const i=Object.keys(e);if(1!==i.length)throw Error("Too many keys in query selector. should be one");const a=i[0];return a===r.AND?t.push(...e[a]):t.push(e),t},[])],a.selector=t;break;case r.OR:{const e={};e[r.AND]=[t,...Object.entries(a.selector).map(([t,e])=>{const r={};return r[t]=e,r})],a.selector=e;break}default:throw Error("This should be impossible")}else Object.entries(t).forEach(([t,e])=>{a.selector[t],a.selector[t]=e})}if(this.orderBySelector){a.sort=a.sort||[],a.selector=a.selector||{};const[t,e]=this.orderBySelector,r={};r[t]=e,a.sort.push(r),a.selector[t]||(a.selector[t]={},a.selector[t][i.BIGGER]=null)}return this.limitSelector&&(a.limit=this.limitSelector),this.offsetSelector&&(a.skip=this.offsetSelector),a}}let dt=class extends B{constructor(t){super(t)}};nt([$(),ot("design:type",String)],dt.prototype,"id",void 0),nt([n(),F(),ot("design:type",Object)],dt.prototype,"current",void 0),dt=nt([j(e.SEQUENCE),o(),ot("design:paramtypes",[Object])],dt);class ht extends _{constructor(t,e){super(t,e),this.repo=I.forModel(dt,e.alias)}async current(...t){const e=(await p.args(d.READ,dt,t,this.adapter)).context,{name:r,startWith:i}=this.options;try{const t=await this.repo.read(r,e);return this.parse(t.current)}catch(t){if(t instanceof y){if(void 0===i)throw new w("Starting value is not defined for a non existing sequence");try{return this.parse(i)}catch(t){throw new w(`Failed to parse initial value for sequence ${i}: ${t}`)}}throw new w(`Failed to retrieve current value for sequence ${r}: ${t}`)}}async increment(t,e,r){const{type:i,incrementBy:a,name:s}=this.options;let n;const o=e||a;if(o%a!==0)throw new w("Value to increment does not consider the incrementBy setting: "+a);switch(i){case"Number":n=this.parse(t)+o;break;case"BigInt":n=this.parse(t)+BigInt(o);break;default:throw new w("Should never happen")}let l;try{l=await this.repo.update(new dt({id:s,current:n}),r)}catch(t){if(!(t instanceof y))throw t;l=await this.repo.create(new dt({id:s,current:n}),r)}return l.current}async next(...t){const e=await p.args(d.UPDATE,dt,t,this.adapter),{context:r,args:i}=e,a=await this.current(...i);return this.increment(a,void 0,r)}async range(t,...e){const r=await p.args(d.UPDATE,dt,e,this.adapter),{context:i,args:a}=r,s=await this.current(...a),n=this.parse(this.options.incrementBy),o=await this.increment(s,this.parse(t)*n,i),l=[];for(let e=1;t>=e;e++)l.push(s+n*this.parse(e));if(l[l.length-1]!==o&&"String"!==this.options.type)throw new w("Miscalculation of range");return l}}var gt,yt;(t=>{t.PRIVATE="private",t.SHARED="shared",t.FABRIC="fabric.",t.OWNEDBY="owned-by"})(gt||(gt={})),(t=>{t.X509="X.509"})(yt||(yt={}));const wt="hlf-fabric";class ft extends l{constructor(){super()}deserialize(t,e){return JSON.parse(t)}serialize(t){return require("json-stringify-deterministic")(require("sort-keys-recursive")(this.preSerialize(t)))}preSerialize(t){return Object.assign({},t)}}async function mt(t,e,r,i){const a=i[r];if(!a)return;if("object"!=typeof a){const e=L(i,r,this.adapter.alias),s=await e.read(a,t);return await J(t,i,r,a,s),void(i[r]=a)}e.class="string"==typeof e.class?e.class:e.class().name;const n=s.get(e.class);if(!n)throw new w("Could not find model "+e.class);const o=I.forModel(n,this.adapter.alias),l=await o.create(a,t),c=s.pk(l);await J(t,i,r,l[c],l),i[r]=l[c]}async function bt(t,e,r,i){const a=i[r];if(!a)return;if(e.cascade.update!==q.CASCADE)return;if("object"!=typeof a){const e=L(i,r,this.adapter.alias),s=await e.read(a,t);return await J(t,i,r,a,s),void(i[r]=a)}const n=await M(i[r],t,this.adapter.alias),o=s.pk(n);await J(t,i,r,n[o],n),i[r]=n[o]}async function xt(t,e,r,i){const a=i[r];if(!a)return;if(e.cascade.update!==q.CASCADE)return;const n=L(i,r,this.adapter.alias);let o;o=a instanceof s?await n.delete(i[r][s.pk(n.class)],t):await n.delete(i[r],t),await J(t,i,r,o[s.pk(n.class)],o)}async function vt(t,e,r,i){const a=i[r];if(!a||!a.length)return;const n=typeof a[0];if(!a.every(t=>typeof t===n))throw new w(`Invalid operation. All elements of property ${r} must match the same type.`);const o=new Set([...a]);if("object"!==n){const e=L(i,r,this.adapter.alias);for(const a of o){const s=await e.read(a,t);await J(t,i,r,a,s)}return void(i[r]=[...o])}const l=s.pk(a[0]),c=new Set;for(const e of a){const a=await M(e,t,this.adapter.alias);await J(t,i,r,a[l],a),c.add(a[l])}i[r]=[...c]}async function At(t,e,r,i){if(e.cascade.delete!==q.CASCADE)return;const a=i[r];if(!a||!a.length)return;const n=typeof a[0];if(!a.every(t=>typeof t===n))throw new w(`Invalid operation. All elements of property ${r} must match the same type.`);const o="object"===n,l=o?I.forModel(a[0],this.adapter.alias):L(i,r,this.adapter.alias),c=new Set([...o?a.map(t=>t[s.pk(this.class)]):a]);for(const e of c.values()){const a=await l.delete(e,t);await J(t,i,r,e,a)}i[r]=[...c]}async function St(t,e,r,i){if(!e.populate)return;const a=i[r],s=Array.isArray(a);if(void 0===a||s&&0===a.length)return;const n=await(async(e,r,i,a,s)=>{let n,o;const l=[];for(const c of a){n=U(r.constructor.name,i,c);try{o=await e.get(n)}catch(e){const a=L(r,i,s);if(!a)throw new w("Could not find repo");o=await a.read(c,t)}l.push(o)}return l})(t,i,r,s?a:[a],this.adapter.alias);i[r]=s?n:n[0]}async function Ct(t,e,r,i){try{const e=t.get("identity");i[r]=e.getID()}catch(t){throw new Y("No User found in context. Please provide a user in the context")}}async function Ot(t,e,r,i){if(!e.type||i[r])return;let a;e.name||(e.name=s.sequenceName(i,"pk"));try{a=await this.adapter.Sequence(e)}catch(t){throw new w(`Failed to instantiate Sequence ${e.name}: ${t}`)}const n=await a.next(t);Object.defineProperty(i,r,{enumerable:!0,writable:!1,configurable:!0,value:n})}class kt extends a{getClient(){throw new Y("Client is not supported in Fabric contracts")}static{this.textDecoder=new TextDecoder("utf8")}static{this.serializer=new ft}repository(){return ut}constructor(t,e){super(t,wt,e),this.Context=lt}for(t,...e){return super.for(t,...e)}async create(t,e,r,...i){const{ctx:a,log:n}=this.logCtx(i,this.create),{stub:o}=a,l=s.tableName(t);try{n.info(`adding entry to ${l} table with pk ${e}`);const t=o.createCompositeKey(l,[e+""]);r=await this.putState(t,r,a)}catch(t){throw this.parseError(t)}return r}async read(t,e,...r){const{ctx:i,log:a}=this.logCtx(r,this.read),{stub:n}=i,o=s.tableName(t);let l;try{const t=n.createCompositeKey(o,[e+""]),r=await this.readState(t,i);if(1>r.length)throw a.debug(`No record found for id ${e} in ${o} table`),new y(`No record found for id ${e} in ${o} table`);2>r.length?(a.debug(`No record found for id ${e} in ${o} table`),l=r.pop()):l=this.mergeModels(r)}catch(t){throw this.parseError(t)}return l}async update(t,e,r,...i){const{ctx:a,log:n}=this.logCtx(i,this.update),{stub:o}=a,l=s.tableName(t);try{n.verbose(`updating entry to ${l} table with pk ${e}`);const t=o.createCompositeKey(l,[e+""]);r=await this.putState(t,r,a)}catch(t){throw this.parseError(t)}return r}async delete(t,e,...r){const{ctx:i,log:a,ctxArgs:n}=this.logCtx(r,this.delete),{stub:o}=i,l=s.tableName(t);let c;try{const r=o.createCompositeKey(l,[e+""]);c=await this.read(t,e,...n),a.verbose(`deleting entry with pk ${e} from ${l} table`),await this.deleteState(r,i)}catch(t){throw this.parseError(t)}return c}async deleteState(t,e){const{stub:r,logger:i}=e,a=i.for(this.deleteState);await r.deleteState(t),a.trace("Deleted state for id "+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,a)=>e.includes(i)?new Proxy(r[i],{async apply(e,r,a){switch(i){case"putState":{const[e,r,i]=a;return await e.putPrivateData(t,r.toString(),i),i}case"deleteState":{const[e,r]=a;return e.deletePrivateData(t,r)}case"readState":{const[e,r]=a;return e.getPrivateData(t,r)}case"queryResult":{const[e,r]=a;return e.getPrivateDataQueryResult(t,r)}case"queryResultPaginated":{const[e,r,i,s]=a,n=await e.getPrivateDataQueryResult(t,r),o=[];let l=0,c=!s,u=null;for(;;){const t=await n.next();if(t.value&&t.value.value.toString()){const e=t.value.key,r=t.value.value.toString("utf8");if(!c){e===s?.toString()&&(c=!0);continue}if(o.push({Key:e,Record:JSON.parse(r)}),u=e,l++,l>=i)return await n.close(),{iterator:o,metadata:{fetchedRecordsCount:o.length,bookmark:u}}}if(t.done)return await n.close(),{iterator:o,metadata:{fetchedRecordsCount:o.length,bookmark:""}}}}default:throw new w("Unsupported method override "+i)}}}):Reflect.get(r,i,a)})}async putState(t,e,r){let i;const{stub:a,logger:s}=r,n=s.for(this.putState);try{i=Buffer.from(kt.serializer.serialize(e))}catch(e){throw new f(`Failed to serialize record with id ${t}: ${e}`)}return await a.putState(t.toString(),i),n.silly("state stored under id "+t),e}async readState(t,e){let r;const{stub:i,logger:a}=e,s=a.for(this.readState),n=(await i.getState(t)).toString();if(!n)throw new y(`Record with id ${t} not found`);s.silly("Read state for id "+t);try{r=kt.serializer.deserialize(n.toString())}catch(t){throw new f("Failed to parse record: "+t)}return r}async queryResult(t,e,...r){return await t.getQueryResult(JSON.stringify(e))}async queryResultPaginated(t,e,r=250,i,...a){return await t.getQueryResultWithPagination(JSON.stringify(e),r,i?.toString())}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 kt.textDecoder.decode(t)}async flags(t,e,r,i,...a){const s=t=>{const e=t??this.log.for(this.flags);return"function"!=typeof e.clear&&(e.clear=()=>e),"function"!=typeof e.for&&(e.for=()=>e),e},n=i instanceof lt?i.accumulate({logger:s(i.logger)}):(new lt).accumulate({stub:i.stub,identity:i.clientIdentity,logger:s()}),o=Object.assign({},r,{logger:n.logger});return Object.assign(await super.flags(t,e,o,...a),{stub:i.stub,identity:i.clientIdentity??n.identity,logger:n.logger,correlationId:i.stub.getTxID()})}index(t){return Promise.resolve(void 0)}async resultIterator(t,e,r=!1){const i=[];let a=await e.next();for(;!a.done;){if(a.value&&a.value.value.toString()){let e={};if(t.debug(a.value.value.toString("utf8")),r){e.TxId=a.value.txId,e.Timestamp=a.value.timestamp;try{e.Value=JSON.parse(a.value.value.toString("utf8"))}catch(r){t.error(r),e.Value=a.value.value.toString("utf8")}}else try{e=JSON.parse(a.value.value.toString("utf8"))}catch(r){t.error(r),e=a.value.value.toString("utf8")}i.push(e)}a=await e.next()}return t.debug(`Closing iterator after ${i.length} results`),e.close(),i}async raw(t,...e){const{ctx:r,log:i,ctxArgs:a}=this.logCtx(e,this.raw);"boolean"==typeof a[0]&&a.shift();const{stub:s}=r,{skip:n,limit:o}=t;let l;o||n?(delete t.limit,delete t.skip,i.debug(`Retrieving paginated iterator: limit: ${o}/ skip: ${n}`),l=(await this.queryResultPaginated(s,t,o||250,n?.toString())).iterator):(i.debug("Retrieving iterator"),l=await this.queryResult(s,t)),i.debug("Iterator acquired");const c=await this.resultIterator(i,l);return i.debug("returning {0} results",""+(Array.isArray(c)?c.length:1)),c}Statement(){return new pt(this)}async Sequence(t){return new ht(t,this)}async createAll(t,e,r,...i){if(e.length!==r.length)throw new w("Ids and models must have the same length");const{log:a,ctxArgs:n}=this.logCtx(i,this.createAll),o=s.tableName(t);return a.debug(`Creating ${e.length} entries ${o} table`),Promise.all(e.map((e,i)=>this.create(t,e,r[i],...n)))}async updateAll(t,e,r,...i){if(e.length!==r.length)throw new w("Ids and models must have the same length");const{log:a,ctxArgs:n}=this.logCtx(i,this.updateAll),o=s.tableName(t);return a.debug(`Updating ${e.length} entries ${o} table`),Promise.all(e.map((e,i)=>this.update(t,e,r[i],...n)))}prepare(t,...e){const{log:r}=this.logCtx(e,this.prepare),i=s.tableName(t.constructor),a=s.pk(t.constructor),n=s.segregate(t),o=Object.entries(n.model).reduce((e,[r,i])=>{if(void 0===i)return e;const a=s.columnName(t,r);if(this.isReserved(a))throw new w(`Property name ${a} is reserved`);return e[a]=i,e},{});return r.silly(`Preparing record for ${i} table with pk ${t[a]}`),{record:o,id:t[a],transient:n.transient}}revert(t,e,r,i,...a){const{log:n}=this.logCtx(a,this.revert),o={};o[s.pk(e)]=r;const l="string"==typeof e?s.build(o,e):new e(o);n.silly(`Rebuilding model ${l.constructor.name} id ${r}`);const c=Object.keys(l).reduce((e,r)=>(e[r]=t[s.columnName(e,r)],e),l);return i&&(n.debug("re-adding transient properties: "+Object.keys(i).join(", ")),Object.entries(i).forEach(([t,e])=>{if(t in c&&void 0!==c[t])throw new w(`Transient property ${t} already exists on model ${l.constructor.name}. should be impossible`);c[t]=e})),c}createPrefix(t,r,i,...a){const{ctxArgs:n}=this.logCtx(a,this.createPrefix),o={};return o[e.TABLE]=s.tableName(t),Object.assign(o,i),[t,r,o,...n]}updatePrefix(t,r,i,...a){const{ctxArgs:n}=this.logCtx(a,this.updatePrefix),o={};return o[e.TABLE]=s.tableName(t),Object.assign(o,i),[t,r,o,...n]}createAllPrefix(t,r,i,...a){if(r.length!==i.length)throw new w("Ids and models must have the same length");const s=a.pop(),n=r.map((r,a)=>{const s={};return s[e.TABLE]=t,Object.assign(s,i[a]),s});return[t,r,n,s]}updateAllPrefix(t,r,i,...a){if(r.length!==i.length)throw new w("Ids and models must have the same length");const s=a.pop(),n=r.map((r,a)=>{const s={};return s[e.TABLE]=t,Object.assign(s,i[a]),s});return[t,r,n,s]}parseError(t,e){return kt.parseError(e||t)}static parseError(t,e){return super.parseError(t,e)}static decoration(){super.decoration(),rt.flavouredAs(wt).for(V.CREATED_BY).define(m(Ct),it(V.CREATED_BY,{})).apply(),rt.flavouredAs(wt).for(V.UPDATED_BY).define(b(Ct),it(V.UPDATED_BY,{})).apply(),rt.flavouredAs(wt).for(g.ID).define({decorator:(t,e)=>(r,i)=>at(n(),x(),it(et.key(g.ID,i),t),m(Ot,t,e))(r,i)}).apply(),rt.flavouredAs(wt).for(V.COLUMN).extend(k()).apply(),rt.flavouredAs(wt).for(V.TABLE).extend(t=>N()(t)).apply(),rt.flavouredAs(wt).for(V.ONE_TO_ONE).define({decorator:(t,e,r,i,a)=>{const s={class:t,cascade:e,populate:r};return i&&(s.joinTable=i),a&&(s.name=a),at(st(),H(V.ONE_TO_ONE,s),c([t,String,Number,BigInt]),m(mt,s),v(bt,s),A(xt,s),S(St,s),it(V.ONE_TO_ONE,s))}}).apply(),rt.for(V.ONE_TO_MANY).define({decorator:(t,e,r,i,a)=>{const s={class:t,cascade:e,populate:r};return i&&(s.joinTable=i),a&&(s.name=a),at(st(),H(V.ONE_TO_MANY,s),u([t,String,Number]),m(vt,s),v(K,s),A(At,s),S(St,s),it(V.ONE_TO_MANY,s))}}).apply()}}kt.decoration(),P.setCurrent(wt);class Nt extends l{constructor(){super()}deserialize(t){return super.deserialize(t)}serialize(t){return require("json-stringify-deterministic")(require("sort-keys-recursive")(this.preSerialize(t)))}}class Et extends E{static{this.adapter=new kt}static{this.serializer=new Nt}constructor(t,e){super(t),this.clazz=e,this.initialized=!1,this.repo=I.forModel(e)}async create(t,e,...r){const{log:i,ctxArgs:a}=await this.logCtx([...r,t],this.create);"string"==typeof e&&(e=this.deserialize(e)),i.info("Creating model: "+JSON.stringify(e));const n=this.getTransientData(t);return i.info("Merging transient data..."),e=s.merge(e,n,this.clazz),this.repo.create(e,...a)}async read(t,e,...r){const{log:i,ctxArgs:a}=await this.logCtx([...r,t],this.read);return i.info(`reading entry with pk ${e} `),this.repo.read(e,...a)}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(t,e,...r){const{log:i,ctxArgs:a}=await this.logCtx([...r,t],this.update);"string"==typeof e&&(e=this.deserialize(e)),i.info("Updating model: "+JSON.stringify(e));const n=this.getTransientData(t);return i.info("Merging transient data..."),e=s.merge(e,n,this.clazz),this.repo.update(e,...a)}async delete(t,e,...r){const{log:i,ctxArgs:a}=await this.logCtx([...r,t],this.delete);return i.info(`deleting entry with pk ${e} `),this.repo.delete(e+"",...a)}async deleteAll(t,e,...r){const{ctxArgs:i}=await this.logCtx([...r,t],this.readAll);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],this.readAll);return"string"==typeof e&&(e=JSON.parse(e)),this.repo.readAll(e,...i)}async updateAll(t,e,...r){const{log:i,ctxArgs:a}=await this.logCtx([...r,t],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,...a)}async raw(t,e,r,...i){const{ctxArgs:a}=await this.logCtx([...i,t],this.raw);return"string"==typeof e&&(e=JSON.parse(e)),Et.adapter.raw(e,r,...a)}serialize(t){return Et.serializer.serialize(t)}deserialize(t){return Et.serializer.deserialize(t)}async init(t){const{log:e}=await this.logCtx([t],this.init);e.info("Running contract initialization..."),this.initialized=!0,e.info("Contract initialization completed.")}async healthcheck(t){const{log:e}=await this.logCtx([t],this.healthcheck);return e.info(`Running Healthcheck: ${this.initialized}...`),{healthcheck:this.initialized}}async createAll(t,e,...r){const{log:i}=await this.logCtx([...r,t],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,t,...r)}async logCtx(t,e){return Et.logCtx.bind(this)(t,e)}static async logCtx(t,e){if(1>t.length)throw new w("No context provided");const r=t.pop();if(r instanceof lt)return{ctx:r,log:r.logger.clear().for(this).for(e),ctxArgs:[...t,r]};if(!(r instanceof z))throw new w("No valid context provided");const i={correlationId:r.stub.getTxID()},a=await Et.adapter.context((()=>{if("string"==typeof e)return e;switch(e.name){case d.CREATE:case d.READ:case d.UPDATE:case d.DELETE:case h.CREATE_ALL:case h.READ_ALL:case h.UPDATE_ALL:case h.DELETE_ALL:}return e.name})(),i,this.clazz,r),s=this?a.logger.for(this).for(e):a.logger.clear().for(this).for(e);return{ctx:a,log:s,ctxArgs:[...t,a]}}}class zt extends Et{constructor(t,e){super(t,e)}async create(t,e){const{log:r}=await this.logCtx([t],this.create);r.info("Creating model: "+e);const i=this.deserialize(e);return r.info("Model deserialized: "+JSON.stringify(i)),this.serialize(await super.create(t,i))}async read(t,e){const{log:r}=await this.logCtx([t],this.read);return r.info("Reading id: "+e),this.serialize(await super.read(t,e))}async update(t,e){const{log:r}=await this.logCtx([t],this.update);return r.info("Updating model: "+e),this.serialize(await super.update(t,e))}async delete(t,e){const{log:r}=await this.logCtx([t],this.delete);return r.info("Deleting id: "+e),this.serialize(await super.delete(t,e))}async deleteAll(t,e){const r=JSON.parse(e),{log:i}=await this.logCtx([t],this.deleteAll);return i.info(`deleting ${r.length} entries from the table`),JSON.stringify((await super.deleteAll(t,r)).map(t=>this.serialize(t)))}async readAll(t,e){const r=JSON.parse(e),{log:i}=await this.logCtx([t],this.readAll);return i.info(`reading ${r.length} entries from the table`),JSON.stringify((await super.readAll(t,r)).map(t=>this.serialize(t)))}async updateAll(t,e){const{log:r}=await this.logCtx([t],this.updateAll),i=JSON.parse(e).map(t=>this.deserialize(t)).map(t=>new this.clazz(t));return r.info(`Updating ${i.length} entries to the table`),JSON.stringify((await super.updateAll(t,i)).map(t=>this.serialize(t)))}async raw(t,e,r){const{ctx:i}=await this.logCtx([t],this.raw),a=JSON.parse(e);return super.raw(i,a,r)}async init(t){await super.init(t)}async healthcheck(t){return JSON.stringify(await super.healthcheck(t))}async createAll(t,e){const{log:r}=await this.logCtx([t],this.createAll),i=JSON.parse(e).map(t=>this.deserialize(t)).map(t=>new this.clazz(t));return r.info(`Adding ${i.length} entries to the table`),JSON.stringify((await super.createAll(t,i)).map(t=>this.serialize(t)))}}nt([R(),ot("design:type",Function),ot("design:paramtypes",[z,String]),ot("design:returntype",Promise)],zt.prototype,"create",null),nt([R(!1),ot("design:type",Function),ot("design:paramtypes",[z,String]),ot("design:returntype",Promise)],zt.prototype,"read",null),nt([R(),ot("design:type",Function),ot("design:paramtypes",[z,String]),ot("design:returntype",Promise)],zt.prototype,"update",null),nt([R(),ot("design:type",Function),ot("design:paramtypes",[z,String]),ot("design:returntype",Promise)],zt.prototype,"delete",null),nt([R(),ot("design:type",Function),ot("design:paramtypes",[z,String]),ot("design:returntype",Promise)],zt.prototype,"deleteAll",null),nt([R(!1),ot("design:type",Function),ot("design:paramtypes",[z,String]),ot("design:returntype",Promise)],zt.prototype,"readAll",null),nt([R(),ot("design:type",Function),ot("design:paramtypes",[z,String]),ot("design:returntype",Promise)],zt.prototype,"updateAll",null),nt([R(!1),ot("design:type",Function),ot("design:paramtypes",[z,String,Boolean]),ot("design:returntype",Promise)],zt.prototype,"raw",null),nt([R(),ot("design:type",Function),ot("design:paramtypes",[z]),ot("design:returntype",Promise)],zt.prototype,"init",null),nt([R(!1),ot("design:type",Function),ot("design:paramtypes",[z]),ot("design:returntype",Promise)],zt.prototype,"healthcheck",null),nt([R(),ot("design:type",Function),ot("design:paramtypes",[z,String]),ot("design:returntype",Promise)],zt.prototype,"createAll",null);class Rt extends w{constructor(t){super(t,Rt.name)}}class Tt extends w{constructor(t){super(t,Tt.name)}}class Pt extends w{constructor(t){super(t,Pt.name)}}class It extends C{constructor(t){super(It.name,t,409)}}function Dt(t,e){const r=t+e;if(t!==r-e||e!==r-t)throw new Rt(`Addition overflow: ${t} + ${e}`);return r}function $t(t,e){const r=t-e;if(t!==r+e||e!==t-r)throw new Rt(`Subtraction overflow: ${t} - ${e}`);return r}let Ft=class extends B{constructor(t){super(t)}};nt([$({type:"String"}),ot("design:type",String)],Ft.prototype,"name",void 0),nt([Q(),n(),ot("design:type",String)],Ft.prototype,"owner",void 0),nt([Q(),n(),ot("design:type",String)],Ft.prototype,"symbol",void 0),nt([Q(),n(),ot("design:type",Number)],Ft.prototype,"decimals",void 0),Ft=nt([j("erc20_tokens"),o(),ot("design:paramtypes",[Object])],Ft);let jt=class extends B{constructor(t){super(t)}};nt([$({type:"String"}),ot("design:type",String)],jt.prototype,"id",void 0),nt([Q(),n(),ot("design:type",String)],jt.prototype,"token",void 0),nt([Q(),n(),ot("design:type",Number)],jt.prototype,"balance",void 0),nt([Q(),ot("design:type",String)],jt.prototype,"captive",void 0),jt=nt([j("erc20_wallets"),o(),ot("design:paramtypes",[Object])],jt);let Bt=class extends B{constructor(t){super(t)}};function _t(){return function(t,e,r){const i=r.value;return r.value=async function(...t){const r=t[0],a=r.clientIdentity.getID(),s=await this.tokenRepository.select(),n=await s.execute(r);if(0==n.length)throw new y("No tokens avaialble");if(n.length>1)throw new y("To many token available : "+n.length);if(n[0].owner!=a)throw new G(`User not authorized to run ${e} on the token`);return await i.apply(this,t)},r}}var Lt;nt([$({type:"String"}),Q(),n(),ot("design:type",String)],Bt.prototype,"owner",void 0),nt([Q(),n(),ot("design:type",String)],Bt.prototype,"spender",void 0),nt([Q(),n(),ot("design:type",Number)],Bt.prototype,"value",void 0),Bt=nt([j("erc20_allowances"),o(),ot("design:paramtypes",[Object])],Bt),(t=>{t.TRANSFER="Transfer",t.APPROVAL="Approval"})(Lt||(Lt={}));class Jt extends Et{constructor(t){super(t,jt),Jt.adapter=Jt.adapter||new kt,this.walletRepository=ut.forModel(jt,Jt.adapter.alias),this.tokenRepository=ut.forModel(Ft,Jt.adapter.alias),this.allowanceRepository=ut.forModel(Bt,Jt.adapter.alias)}async TokenName(t){await this.CheckInitialized(t);const e=await this.tokenRepository.select();return(await e.execute(t))[0].name}async Symbol(t){await this.CheckInitialized(t);const e=await this.tokenRepository.select();return(await e.execute(t))[0].symbol}async Decimals(t){await this.CheckInitialized(t);const e=await this.tokenRepository.select();return(await e.execute(t))[0].decimals}async TotalSupply(t){await this.CheckInitialized(t);const e=await this.walletRepository.select(),r=await e.execute(t);if(0==r.length)throw new y(`The token ${this.getName()} does not exist`);let i=0;return r.forEach(t=>{i+=t.balance}),i}async BalanceOf(t,e){return await this.CheckInitialized(t),(await this.walletRepository.read(e,t)).balance}async Transfer(t,e,r){await this.CheckInitialized(t);const{ctx:i}=await this.logCtx([t],this.Transfer),a=i.identity.getID();if(!await this._transfer(a,e,r,i))throw new w("Failed to transfer");return!0}async TransferFrom(t,e,r,i){await this.CheckInitialized(t);const{ctx:a}=await this.logCtx([t],this.BurnFrom),s=a.identity.getID(),n=await this._getAllowance(e,s,a);if(!n||0>n.value)throw new Pt(`spender ${s} has no allowance from ${e}`);const o=n.value;if(i>o)throw new Tt("The spender does not have enough allowance to spend.");const l=$t(o,i),c=Object.assign({},n,{value:l});if(await this.allowanceRepository.update(c,a),!await this._transfer(e,r,i,a))throw new w("Failed to transfer");return!0}async _transfer(t,e,r,i){const a=i.logger;if(t===e)throw new G("cannot transfer to and from same client account");if(0>r)throw new Tt("transfer amount cannot be negative");const s=await this.walletRepository.read(t,i),n=s.balance;if(r>n)throw new Tt(`client account ${t} has insufficient funds.`);let o,l=!1;try{o=await this.walletRepository.read(e,i)}catch(t){if(!(t instanceof C))throw new w(t);if(404!==t.code)throw new w(t.message);o=new jt({id:e,balance:0,token:await this.TokenName(i)}),l=!0}const c=o.balance,u=$t(n,r),p=Dt(c,r),d=Object.assign({},s,{balance:u});await this.walletRepository.update(d,i);const h=Object.assign({},o,{balance:p});l?await this.walletRepository.create(h,i):await this.walletRepository.update(h,i);const g={from:t,to:e,value:r};return this.repo.refresh(Ft,Lt.TRANSFER,"",g,i).catch(t=>a.error("Failed to notify transfer: "+t)),!0}async Approve(t,e,r){await this.CheckInitialized(t);const{ctx:i,ctxArgs:a}=await this.logCtx([t],this.Approve),s=i.identity.getID();let n=await this._getAllowance(s,e,i);if((await this.walletRepository.read(s,...a)).balance<r)throw new Tt(`client account ${s} has insufficient funds.`);n?(n.value=r,await this.allowanceRepository.update(n,...a)):(n=new Bt({owner:s,spender:e,value:r}),await this.allowanceRepository.create(n,...a));const o={owner:s,spender:e,value:r};return this.repo.refresh(Ft,Lt.APPROVAL,"",o,i),!0}async Allowance(t,e,r){await this.CheckInitialized(t);const{ctx:i}=await this.logCtx([t],this.Allowance),a=await this._getAllowance(e,r,i);if(!a)throw new Pt(`spender ${r} has no allowance from ${e}`);return a.value}async _getAllowance(t,e,r){const i=D.and(D.attribute("owner").eq(t),D.attribute("spender").eq(e)),a=await this.allowanceRepository.select().where(i).execute(r);return a?.[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 G("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 It("contract options need to be set before calling any function, call Initialize() to initialize contract")}async Mint(t,e){await this.CheckInitialized(t);const{ctx:r}=await this.logCtx([t],this.Mint),i=r.identity.getID();if(0>=e)throw new O("mint amount must be a positive integer");let a;try{a=await this.walletRepository.read(i,r);const t=Dt(a.balance,e),s=Object.assign({},a,{balance:t});await this.walletRepository.update(s,r)}catch(a){if(!(a instanceof C))throw new w(a);if(404!==a.code)throw new w(a.message);{const a=new jt({id:i,balance:e,token:await this.TokenName(t)});await this.walletRepository.create(a,r)}}const s={from:"0x0",to:i,value:e};this.repo.ObserverHandler().updateObservers(Ft,Lt.TRANSFER,"",s,r)}async Burn(t,e){await this.CheckInitialized(t);const{log:r,ctx:i}=await this.logCtx([t],this.Burn),a=i.identity.getID(),s=await this.walletRepository.read(a,i),n=s.balance;if(e>n)throw new Tt("Minter has insufficient funds.");const o=$t(n,e),l=Object.assign({},s,{balance:o});await this.walletRepository.update(l,i),r.info(e+" tokens were burned");const c={from:a,to:"0x0",value:e};this.repo.ObserverHandler().updateObservers(Ft,Lt.TRANSFER,"",c,i)}async BurnFrom(t,e,r){await this.CheckInitialized(t);const{log:i,ctx:a}=await this.logCtx([t],this.BurnFrom),s=await this.walletRepository.read(e,a),n=s.balance;if(r>n)throw new Tt(e+" has insufficient funds.");const o=$t(n,r),l=Object.assign({},s,{balance:o});await this.walletRepository.update(l,a),i.info(`${r} tokens were burned from ${e}`);const c={from:e,to:"0x0",value:r};this.repo.ObserverHandler().updateObservers(Ft,Lt.TRANSFER,"",c,a)}async ClientAccountBalance(t){await this.CheckInitialized(t);const e=t.clientIdentity.getID(),r=await this.walletRepository.read(e,t);if(!r)throw new Tt(`The account ${e} does not exist`);return r.balance}async ClientAccountID(t){await this.CheckInitialized(t);const{ctx:e}=await this.logCtx([t],this.ClientAccountID);return e.identity.getID()}}nt([R(!1),ot("design:type",Function),ot("design:paramtypes",[z]),ot("design:returntype",Promise)],Jt.prototype,"TokenName",null),nt([R(!1),ot("design:type",Function),ot("design:paramtypes",[z]),ot("design:returntype",Promise)],Jt.prototype,"Symbol",null),nt([R(!1),ot("design:type",Function),ot("design:paramtypes",[z]),ot("design:returntype",Promise)],Jt.prototype,"Decimals",null),nt([R(!1),ot("design:type",Function),ot("design:paramtypes",[z]),ot("design:returntype",Promise)],Jt.prototype,"TotalSupply",null),nt([R(!1),ot("design:type",Function),ot("design:paramtypes",[z,String]),ot("design:returntype",Promise)],Jt.prototype,"BalanceOf",null),nt([R(),ot("design:type",Function),ot("design:paramtypes",[z,String,Number]),ot("design:returntype",Promise)],Jt.prototype,"Transfer",null),nt([R(),ot("design:type",Function),ot("design:paramtypes",[z,String,String,Number]),ot("design:returntype",Promise)],Jt.prototype,"TransferFrom",null),nt([R(),ot("design:type",Function),ot("design:paramtypes",[z,String,Number]),ot("design:returntype",Promise)],Jt.prototype,"Approve",null),nt([R(!1),ot("design:type",Function),ot("design:paramtypes",[z,String,String]),ot("design:returntype",Promise)],Jt.prototype,"Allowance",null),nt([R(),ot("design:type",Function),ot("design:paramtypes",[z,Ft]),ot("design:returntype",Promise)],Jt.prototype,"Initialize",null),nt([R(!1),ot("design:type",Function),ot("design:paramtypes",[z]),ot("design:returntype",Promise)],Jt.prototype,"CheckInitialized",null),nt([_t(),R(),ot("design:type",Function),ot("design:paramtypes",[z,Number]),ot("design:returntype",Promise)],Jt.prototype,"Mint",null),nt([_t(),R(),ot("design:type",Function),ot("design:paramtypes",[z,Number]),ot("design:returntype",Promise)],Jt.prototype,"Burn",null),nt([_t(),R(),ot("design:type",Function),ot("design:paramtypes",[z,String,Number]),ot("design:returntype",Promise)],Jt.prototype,"BurnFrom",null),nt([R(!1),ot("design:type",Function),ot("design:paramtypes",[z]),ot("design:returntype",Promise)],Jt.prototype,"ClientAccountBalance",null),nt([R(!1),ot("design:type",Function),ot("design:paramtypes",[z]),ot("design:returntype",Promise)],Jt.prototype,"ClientAccountID",null);const qt=[Jt];class Mt extends X{constructor(t,e,r){super(t,e),this.logger=r?r.logging.getLogger(t):new X(t,e)}log(t,e,r){if(Z[this.config("level")]<Z[t])return;let i;switch(t){case tt.info:i=this.logger.info;break;case tt.verbose:i=this.logger.verbose;break;case tt.debug:i=this.logger.debug;break;case tt.error:i=this.logger.error;break;case tt.silly:i=this.logger.silly;break;default:throw new w("Invalid log level")}i.call(this.logger,this.createLog(t,e,r))}}W.setFactory((t,e,r)=>new Mt(t||Mt.name,e||{},r));const Ut="##VERSION##",Yt="##PACKAGE##";et.registerLibrary(Yt,Ut);export{Mt as ContractLogger,kt as FabricContractAdapter,lt as FabricContractContext,ut as FabricContractRepository,ct as FabricContractRepositoryObservableHandler,ht as FabricContractSequence,Et as FabricCrudContract,pt as FabricStatement,Yt as PACKAGE_NAME,zt as SerializedCrudContract,Ut as VERSION,qt as contracts,Ct as createdByOnFabricCreateUpdate,Ot as pkFabricOnCreate};
1
+ import{CouchDBStatement as t,CouchDBKeys as e,CouchDBGroupOperator as r,CouchDBOperator as i,CouchDBAdapter as a}from"@decaf-ts/for-couchdb";import{Model as s,required as n,model as o,JSONSerializer as c,type as l,list as u}from"@decaf-ts/decorator-validation";import{Context as p,OperationKeys as d,BulkCrudOperationKeys as h,DBKeys as g,NotFoundError as y,InternalError as w,SerializationError as f,onCreate as m,onCreateUpdate as b,readonly as x,onUpdate as A,onDelete as v,afterAny as S,BaseError as C,ValidationError as O}from"@decaf-ts/db-decorators";import{Property as E,Object as k,Contract as N,Context as R,Transaction as z}from"fabric-contract-api";import{ObserverHandler as T,Adapter as P,Repository as I,Condition as D,pk as $,index as F,table as j,BaseModel as B,Sequence as _,repositoryFromTypeMetadata as L,cacheModelForPopulate as J,Cascade as q,createOrUpdate as M,getPopulateKey as U,UnsupportedError as Y,PersistenceKeys as V,relation as H,oneToManyOnUpdate as K,column as Q,AuthorizationError as G}from"@decaf-ts/core";import{Logging as W,MiniLogger as X,NumericLogLevels as Z,LogLevel as tt}from"@decaf-ts/logging";import{Metadata as et,Decoration as rt,propMetadata as it,apply as at,prop as st}from"@decaf-ts/decoration";import{__decorate as nt,__metadata as ot}from"tslib";class ct extends p{constructor(){super()}get stub(){return this.get("stub")}get timestamp(){return this.stub.getDateTimestamp()}get identity(){return this.get("identity")}toString(){return"fabric ctx: "+JSON.stringify(this.cache)}}class lt extends T{constructor(t=[d.CREATE,d.UPDATE,d.DELETE,h.CREATE_ALL,h.UPDATE_ALL,h.DELETE_ALL]){super(),this.supportedEvents=t}async updateObservers(t,e,r,...i){const{log:a,ctx:s}=P.logCtx(i,this.updateObservers),{stub:n}=s,[o,c]=i,l="string"==typeof t?t:t.name;if(-1!==this.supportedEvents.indexOf(e)){a.debug(`Emitting ${e} event`);const t=((t,e,r)=>{const i=[t,e];return r&&i.push(r),i.join("_")})(l,e,o);n.setEvent(t,Buffer.from(JSON.stringify({id:r})))}else n.setEvent(e,Buffer.from(JSON.stringify(c)))}}class ut extends I{constructor(t,e,r){super(t,e),this.trackedEvents=r}logFor(t){if(t.logger)return t.logger;const e=W.for(this,{correlationId:t.stub.getTxID()},t);return e.info("REPOSITORY LOG_CTX"),e}ObserverHandler(){return new lt}async updateObservers(t,e,r,...i){if(!this.trackedEvents||-1!==this.trackedEvents.indexOf(e))return await super.updateObservers(t,e,r,...i)}}class pt extends t{constructor(t){super(t)}async raw(t,...e){const{ctx:r}=this.logCtx(e,this.raw),i=await this.adapter.raw(t,!0,r),a=s.pk(this.fromSelector),n=et.get(this.fromSelector,et.key(g.ID,a))?.type;return this.selectSelector?i:i.map(t=>this.processRecord(t,a,n,r))}build(){const t={};t[e.TABLE]={},t[e.TABLE]=s.tableName(this.fromSelector);const a={selector:t};if(this.selectSelector&&(a.fields=this.selectSelector),this.whereCondition){const t=this.parseCondition(D.and(this.whereCondition,D.attribute(e.TABLE).eq(a.selector[e.TABLE]))).selector,i=Object.keys(t);if(1===i.length&&-1!==Object.values(r).indexOf(i[0]))switch(i[0]){case r.AND:t[r.AND]=[...Object.values(t[r.AND]).reduce((t,e)=>{const i=Object.keys(e);if(1!==i.length)throw Error("Too many keys in query selector. should be one");const a=i[0];return a===r.AND?t.push(...e[a]):t.push(e),t},[])],a.selector=t;break;case r.OR:{const e={};e[r.AND]=[t,...Object.entries(a.selector).map(([t,e])=>{const r={};return r[t]=e,r})],a.selector=e;break}default:throw Error("This should be impossible")}else Object.entries(t).forEach(([t,e])=>{a.selector[t],a.selector[t]=e})}if(this.orderBySelector){a.sort=a.sort||[],a.selector=a.selector||{};const[t,e]=this.orderBySelector,r={};r[t]=e,a.sort.push(r),a.selector[t]||(a.selector[t]={},a.selector[t][i.BIGGER]=null)}return this.limitSelector&&(a.limit=this.limitSelector),this.offsetSelector&&(a.skip=this.offsetSelector),a}}let dt=class extends B{constructor(t){super(t)}};nt([$(),ot("design:type",String)],dt.prototype,"id",void 0),nt([n(),F(),ot("design:type",Object)],dt.prototype,"current",void 0),dt=nt([j(e.SEQUENCE),o(),ot("design:paramtypes",[Object])],dt);class ht extends _{constructor(t,e){super(t,e),this.repo=I.forModel(dt,e.alias)}async current(...t){const e=(await p.args(d.READ,dt,t,this.adapter)).context,{name:r,startWith:i}=this.options;try{const t=await this.repo.read(r,e);return this.parse(t.current)}catch(t){if(t instanceof y){if(void 0===i)throw new w("Starting value is not defined for a non existing sequence");try{return this.parse(i)}catch(t){throw new w(`Failed to parse initial value for sequence ${i}: ${t}`)}}throw new w(`Failed to retrieve current value for sequence ${r}: ${t}`)}}async increment(t,e,r){const{type:i,incrementBy:a,name:s}=this.options;let n;const o=e||a;if(o%a!==0)throw new w("Value to increment does not consider the incrementBy setting: "+a);switch(i){case"Number":n=this.parse(t)+o;break;case"BigInt":n=this.parse(t)+BigInt(o);break;default:throw new w("Should never happen")}let c;try{c=await this.repo.update(new dt({id:s,current:n}),r)}catch(t){if(!(t instanceof y))throw t;c=await this.repo.create(new dt({id:s,current:n}),r)}return c.current}async next(...t){const e=await p.args(d.UPDATE,dt,t,this.adapter),{context:r,args:i}=e,a=await this.current(...i);return this.increment(a,void 0,r)}async range(t,...e){const r=await p.args(d.UPDATE,dt,e,this.adapter),{context:i,args:a}=r,s=await this.current(...a),n=this.parse(this.options.incrementBy),o=await this.increment(s,this.parse(t)*n,i),c=[];for(let e=1;t>=e;e++)c.push(s+n*this.parse(e));if(c[c.length-1]!==o&&"String"!==this.options.type)throw new w("Miscalculation of range");return c}}var gt,yt;(t=>{t.PRIVATE="private",t.SHARED="shared",t.FABRIC="fabric.",t.OWNEDBY="owned-by"})(gt||(gt={})),(t=>{t.X509="X.509"})(yt||(yt={}));const wt="hlf-fabric";class ft extends c{constructor(){super()}deserialize(t,e){return JSON.parse(t)}serialize(t){return require("json-stringify-deterministic")(require("sort-keys-recursive")(this.preSerialize(t)))}preSerialize(t){return Object.assign({},t)}}async function mt(t,e,r,i){const a=i[r];if(!a)return;if("object"!=typeof a){const e=L(i,r,this.adapter.alias),s=await e.read(a,t);return await J(t,i,r,a,s),void(i[r]=a)}e.class="string"==typeof e.class?e.class:e.class().name;const n=s.get(e.class);if(!n)throw new w("Could not find model "+e.class);const o=I.forModel(n,this.adapter.alias),c=await o.create(a,t),l=s.pk(c);await J(t,i,r,c[l],c),i[r]=c[l]}async function bt(t,e,r,i){const a=i[r];if(!a)return;if(e.cascade.update!==q.CASCADE)return;if("object"!=typeof a){const e=L(i,r,this.adapter.alias),s=await e.read(a,t);return await J(t,i,r,a,s),void(i[r]=a)}const n=await M(i[r],t,this.adapter.alias),o=s.pk(n);await J(t,i,r,n[o],n),i[r]=n[o]}async function xt(t,e,r,i){const a=i[r];if(!a)return;if(e.cascade.update!==q.CASCADE)return;const n=L(i,r,this.adapter.alias);let o;o=a instanceof s?await n.delete(i[r][s.pk(n.class)],t):await n.delete(i[r],t),await J(t,i,r,o[s.pk(n.class)],o)}async function At(t,e,r,i){const a=i[r];if(!a||!a.length)return;const n=typeof a[0];if(!a.every(t=>typeof t===n))throw new w(`Invalid operation. All elements of property ${r} must match the same type.`);const o=new Set([...a]);if("object"!==n){const e=L(i,r,this.adapter.alias);for(const a of o){const s=await e.read(a,t);await J(t,i,r,a,s)}return void(i[r]=[...o])}const c=s.pk(a[0]),l=new Set;for(const e of a){const a=await M(e,t,this.adapter.alias);await J(t,i,r,a[c],a),l.add(a[c])}i[r]=[...l]}async function vt(t,e,r,i){if(e.cascade.delete!==q.CASCADE)return;const a=i[r];if(!a||!a.length)return;const n=typeof a[0];if(!a.every(t=>typeof t===n))throw new w(`Invalid operation. All elements of property ${r} must match the same type.`);const o="object"===n,c=o?I.forModel(a[0],this.adapter.alias):L(i,r,this.adapter.alias),l=new Set([...o?a.map(t=>t[s.pk(this.class)]):a]);for(const e of l.values()){const a=await c.delete(e,t);await J(t,i,r,e,a)}i[r]=[...l]}async function St(t,e,r,i){if(!e.populate)return;const a=i[r],s=Array.isArray(a);if(void 0===a||s&&0===a.length)return;const n=await(async(e,r,i,a,s)=>{let n,o;const c=[];for(const l of a){n=U(r.constructor.name,i,l);try{o=await e.get(n)}catch(e){const a=L(r,i,s);if(!a)throw new w("Could not find repo");o=await a.read(l,t)}c.push(o)}return c})(t,i,r,s?a:[a],this.adapter.alias);i[r]=s?n:n[0]}async function Ct(t,e,r,i){try{const e=t.get("identity");i[r]=e.getID()}catch(t){throw new Y("No User found in context. Please provide a user in the context")}}async function Ot(t,e,r,i){if(!e.type||i[r])return;let a;e.name||(e.name=s.sequenceName(i,"pk"));try{a=await this.adapter.Sequence(e)}catch(t){throw new w(`Failed to instantiate Sequence ${e.name}: ${t}`)}const n=await a.next(t);Object.defineProperty(i,r,{enumerable:!0,writable:!1,configurable:!0,value:n})}class Et extends a{getClient(){throw new Y("Client is not supported in Fabric contracts")}static{this.textDecoder=new TextDecoder("utf8")}static{this.serializer=new ft}repository(){return ut}constructor(t,e){super(t,wt,e),this.Context=ct}for(t,...e){return super.for(t,...e)}async create(t,e,r,...i){const{ctx:a,log:n}=this.logCtx(i,this.create);n.info("in ADAPTER create with args "+i);const{stub:o}=a,c=s.tableName(t);try{n.info(`adding entry to ${c} table with pk ${e}`);const t=o.createCompositeKey(c,[e+""]);r=await this.putState(t,r,a)}catch(t){throw this.parseError(t)}return r}async read(t,e,...r){const{ctx:i,log:a}=this.logCtx(r,this.read);a.info("in ADAPTER read with args "+r);const{stub:n}=i,o=s.tableName(t);let c;try{const t=n.createCompositeKey(o,[e+""]);c=await this.readState(t,i)}catch(t){throw this.parseError(t)}return c}async update(t,e,r,...i){const{ctx:a,log:n}=this.logCtx(i,this.update),{stub:o}=a,c=s.tableName(t);try{n.verbose(`updating entry to ${c} table with pk ${e}`);const t=o.createCompositeKey(c,[e+""]);r=await this.putState(t,r,a)}catch(t){throw this.parseError(t)}return r}async delete(t,e,...r){const{ctx:i,log:a,ctxArgs:n}=this.logCtx(r,this.delete),{stub:o}=i,c=s.tableName(t);let l;try{const r=o.createCompositeKey(c,[e+""]);l=await this.read(t,e,...n),a.verbose(`deleting entry with pk ${e} from ${c} table`),await this.deleteState(r,i)}catch(t){throw this.parseError(t)}return l}async deleteState(t,e){const{stub:r,logger:i}=e,a=i.for(this.deleteState);await r.deleteState(t),a.trace("Deleted state for id "+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,a)=>e.includes(i)?new Proxy(r[i],{async apply(e,r,a){switch(i){case"putState":{const[e,r,i]=a;return await e.putPrivateData(t,r.toString(),i),i}case"deleteState":{const[e,r]=a;return e.deletePrivateData(t,r)}case"readState":{const[e,r]=a;return e.getPrivateData(t,r)}case"queryResult":{const[e,r]=a;return e.getPrivateDataQueryResult(t,r)}case"queryResultPaginated":{const[e,r,i,s]=a,n=await e.getPrivateDataQueryResult(t,r),o=[];let c=0,l=!s,u=null;for(;;){const t=await n.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 n.close(),{iterator:o,metadata:{fetchedRecordsCount:o.length,bookmark:u}}}if(t.done)return await n.close(),{iterator:o,metadata:{fetchedRecordsCount:o.length,bookmark:""}}}}default:throw new w("Unsupported method override "+i)}}}):Reflect.get(r,i,a)})}async putState(t,e,r){let i;const{stub:a,logger:s}=r,n=s.for(this.putState);try{i=Buffer.from(Et.serializer.serialize(e))}catch(e){throw new f(`Failed to serialize record with id ${t}: ${e}`)}return await a.putState(t.toString(),i),n.silly("state stored under id "+t),e}async readState(t,e){let r;const{stub:i,logger:a}=e,s=a.for(this.readState),n=(await i.getState(t)).toString();if(!n)throw new y(`Record with id ${t} not found`);s.silly("Read state for id "+t);try{r=Et.serializer.deserialize(n.toString())}catch(t){throw new f("Failed to parse record: "+t)}return r}async queryResult(t,e,...r){return await t.getQueryResult(JSON.stringify(e))}async queryResultPaginated(t,e,r=250,i,...a){return await t.getQueryResultWithPagination(JSON.stringify(e),r,i?.toString())}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 Et.textDecoder.decode(t)}async flags(t,e,r,i,...a){const s=t=>{const e=t??this.log.for(this.flags);return"function"!=typeof e.clear&&(e.clear=()=>e),"function"!=typeof e.for&&(e.for=()=>e),e},n=i instanceof ct?i.accumulate({logger:s(i.logger)}):(new ct).accumulate({stub:i.stub,identity:i.clientIdentity,logger:s()}),o=Object.assign({},r,{logger:n.logger});return Object.assign(await super.flags(t,e,o,...a),{stub:i.stub,identity:i.clientIdentity??n.identity,logger:n.logger,correlationId:i.stub.getTxID()})}index(t){return Promise.resolve(void 0)}async resultIterator(t,e,r=!1){const i=[];let a=await e.next();for(;!a.done;){if(a.value&&a.value.value.toString()){let e={};if(t.debug(a.value.value.toString("utf8")),r){e.TxId=a.value.txId,e.Timestamp=a.value.timestamp;try{e.Value=JSON.parse(a.value.value.toString("utf8"))}catch(r){t.error(r),e.Value=a.value.value.toString("utf8")}}else try{e=JSON.parse(a.value.value.toString("utf8"))}catch(r){t.error(r),e=a.value.value.toString("utf8")}i.push(e)}a=await e.next()}return t.debug(`Closing iterator after ${i.length} results`),e.close(),i}async raw(t,...e){const{ctx:r,log:i,ctxArgs:a}=this.logCtx(e,this.raw);"boolean"==typeof a[0]&&a.shift();const{stub:s}=r,{skip:n,limit:o}=t;let c;o||n?(delete t.limit,delete t.skip,i.debug(`Retrieving paginated iterator: limit: ${o}/ skip: ${n}`),c=(await this.queryResultPaginated(s,t,o||250,n?.toString())).iterator):(i.debug("Retrieving iterator"),c=await this.queryResult(s,t)),i.debug("Iterator acquired");const l=await this.resultIterator(i,c);return i.debug("returning {0} results",""+(Array.isArray(l)?l.length:1)),l}Statement(){return new pt(this)}async Sequence(t){return new ht(t,this)}async createAll(t,e,r,...i){if(e.length!==r.length)throw new w("Ids and models must have the same length");const{log:a,ctxArgs:n}=this.logCtx(i,this.createAll),o=s.tableName(t);return a.debug(`Creating ${e.length} entries ${o} table`),Promise.all(e.map((e,i)=>this.create(t,e,r[i],...n)))}async updateAll(t,e,r,...i){if(e.length!==r.length)throw new w("Ids and models must have the same length");const{log:a,ctxArgs:n}=this.logCtx(i,this.updateAll),o=s.tableName(t);return a.debug(`Updating ${e.length} entries ${o} table`),Promise.all(e.map((e,i)=>this.update(t,e,r[i],...n)))}prepare(t,...e){const{log:r}=this.logCtx(e,this.prepare),i=s.tableName(t.constructor),a=s.pk(t.constructor),n=s.segregate(t),o=Object.entries(n.model).reduce((e,[r,i])=>{if(void 0===i)return e;const a=s.columnName(t,r);if(this.isReserved(a))throw new w(`Property name ${a} is reserved`);return e[a]=i,e},{});return r.silly(`Preparing record for ${i} table with pk ${t[a]}`),{record:o,id:t[a],transient:n.transient}}revert(t,e,r,i,...a){const{log:n}=this.logCtx(a,this.revert),o={};o[s.pk(e)]=r;const c="string"==typeof e?s.build(o,e):new e(o);n.silly(`Rebuilding model ${c.constructor.name} id ${r}`);const l=Object.keys(c).reduce((e,r)=>(e[r]=t[s.columnName(e,r)],e),c);return i&&(n.debug("re-adding transient properties: "+Object.keys(i).join(", ")),Object.entries(i).forEach(([t,e])=>{if(t in l&&void 0!==l[t])throw new w(`Transient property ${t} already exists on model ${c.constructor.name}. should be impossible`);l[t]=e})),l}createPrefix(t,r,i,...a){const{ctxArgs:n}=this.logCtx(a,this.createPrefix),o={};return o[e.TABLE]=s.tableName(t),Object.assign(o,i),[t,r,o,...n]}updatePrefix(t,r,i,...a){const{ctxArgs:n}=this.logCtx(a,this.updatePrefix),o={};return o[e.TABLE]=s.tableName(t),Object.assign(o,i),[t,r,o,...n]}createAllPrefix(t,r,i,...a){if(r.length!==i.length)throw new w("Ids and models must have the same length");const s=a.pop(),n=r.map((r,a)=>{const s={};return s[e.TABLE]=t,Object.assign(s,i[a]),s});return[t,r,n,s]}updateAllPrefix(t,r,i,...a){if(r.length!==i.length)throw new w("Ids and models must have the same length");const s=a.pop(),n=r.map((r,a)=>{const s={};return s[e.TABLE]=t,Object.assign(s,i[a]),s});return[t,r,n,s]}parseError(t,e){return Et.parseError(e||t)}static parseError(t,e){return super.parseError(t,e)}static decoration(){super.decoration(),rt.flavouredAs(wt).for(V.CREATED_BY).define(m(Ct),it(V.CREATED_BY,{})).apply(),rt.flavouredAs(wt).for(V.UPDATED_BY).define(b(Ct),it(V.UPDATED_BY,{})).apply(),rt.flavouredAs(wt).for(g.ID).define({decorator:(t,e)=>(r,i)=>at(n(),x(),it(et.key(g.ID,i),t),m(Ot,t,e))(r,i)}).apply(),rt.flavouredAs(wt).for(V.COLUMN).extend(E()).apply(),rt.flavouredAs(wt).for(V.TABLE).extend(t=>k()(t)).apply(),rt.flavouredAs(wt).for(V.ONE_TO_ONE).define({decorator:(t,e,r,i,a)=>{const s={class:t,cascade:e,populate:r};return i&&(s.joinTable=i),a&&(s.name=a),at(st(),H(V.ONE_TO_ONE,s),l([t,String,Number,BigInt]),m(mt,s),A(bt,s),v(xt,s),S(St,s),it(V.ONE_TO_ONE,s))}}).apply(),rt.for(V.ONE_TO_MANY).define({decorator:(t,e,r,i,a)=>{const s={class:t,cascade:e,populate:r};return i&&(s.joinTable=i),a&&(s.name=a),at(st(),H(V.ONE_TO_MANY,s),u([t,String,Number]),m(At,s),A(K,s),v(vt,s),S(St,s),it(V.ONE_TO_MANY,s))}}).apply()}}Et.decoration(),P.setCurrent(wt);class kt extends c{constructor(){super()}deserialize(t){return super.deserialize(t)}serialize(t){return require("json-stringify-deterministic")(require("sort-keys-recursive")(this.preSerialize(t)))}}class Nt extends N{static{this.adapter=new Et}static{this.serializer=new kt}constructor(t,e){super(t),this.clazz=e,this.initialized=!1,this.repo=I.forModel(e)}async create(t,e,...r){const{log:i,ctxArgs:a}=await this.logCtx([...r,t],this.create);i.info("CONTRACT CREATE, "+a),"string"==typeof e&&(e=this.deserialize(e)),i.info("Creating model: "+JSON.stringify(e));const n=this.getTransientData(t);return i.info("Merging transient data..."),e=s.merge(e,n,this.clazz),this.repo.create(e,...a)}async read(t,e,...r){const{log:i,ctxArgs:a}=await this.logCtx([...r,t],this.read);return i.info(`reading entry with pk ${e} `),this.repo.read(e,...a)}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(t,e,...r){const{log:i,ctxArgs:a}=await this.logCtx([...r,t],this.update);"string"==typeof e&&(e=this.deserialize(e)),i.info("Updating model: "+JSON.stringify(e));const n=this.getTransientData(t);return i.info("Merging transient data..."),e=s.merge(e,n,this.clazz),this.repo.update(e,...a)}async delete(t,e,...r){const{log:i,ctxArgs:a}=await this.logCtx([...r,t],this.delete);return i.info(`deleting entry with pk ${e} `),this.repo.delete(e+"",...a)}async deleteAll(t,e,...r){const{ctxArgs:i}=await this.logCtx([...r,t],this.readAll);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],this.readAll);return"string"==typeof e&&(e=JSON.parse(e)),this.repo.readAll(e,...i)}async updateAll(t,e,...r){const{log:i,ctxArgs:a}=await this.logCtx([...r,t],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,...a)}async raw(t,e,r,...i){const{ctxArgs:a}=await this.logCtx([...i,t],this.raw);return"string"==typeof e&&(e=JSON.parse(e)),Nt.adapter.raw(e,r,...a)}serialize(t){return Nt.serializer.serialize(t)}deserialize(t){return Nt.serializer.deserialize(t)}async init(t){const{log:e}=await this.logCtx([t],this.init);e.info("Running contract initialization..."),this.initialized=!0,e.info("Contract initialization completed.")}async healthcheck(t){const{log:e}=await this.logCtx([t],this.healthcheck);return e.info(`Running Healthcheck: ${this.initialized}...`),{healthcheck:this.initialized}}async createAll(t,e,...r){const{log:i}=await this.logCtx([...r,t],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,t,...r)}async logCtx(t,e){return Nt.logCtx.bind(this)(t,e)}static async logCtx(t,e){if(1>t.length)throw new w("No context provided");const r=t.pop();if(r instanceof ct)return{ctx:r,log:r.logger.clear().for(this).for(e),ctxArgs:[...t,r]};if(!(r instanceof R))throw new w("No valid context provided");const i={correlationId:r.stub.getTxID()},a=await Nt.adapter.context((()=>{if("string"==typeof e)return e;switch(e.name){case d.CREATE:case d.READ:case d.UPDATE:case d.DELETE:case h.CREATE_ALL:case h.READ_ALL:case h.UPDATE_ALL:case h.DELETE_ALL:}return e.name})(),i,this.clazz,r),s=this?a.logger.for(this).for(e):a.logger.clear().for(this).for(e);return{ctx:a,log:s,ctxArgs:[...t,a]}}}class Rt extends Nt{constructor(t,e){super(t,e)}async create(t,e){const{log:r}=await this.logCtx([t],this.create);r.info("Creating model: "+e);const i=this.deserialize(e);return r.info("Model deserialized: "+JSON.stringify(i)),this.serialize(await super.create(t,i))}async read(t,e){const{log:r}=await this.logCtx([t],this.read);return r.info("Reading id: "+e),this.serialize(await super.read(t,e))}async update(t,e){const{log:r}=await this.logCtx([t],this.update);return r.info("Updating model: "+e),this.serialize(await super.update(t,e))}async delete(t,e){const{log:r}=await this.logCtx([t],this.delete);return r.info("Deleting id: "+e),this.serialize(await super.delete(t,e))}async deleteAll(t,e){const r=JSON.parse(e),{log:i}=await this.logCtx([t],this.deleteAll);return i.info(`deleting ${r.length} entries from the table`),JSON.stringify((await super.deleteAll(t,r)).map(t=>this.serialize(t)))}async readAll(t,e){const r=JSON.parse(e),{log:i}=await this.logCtx([t],this.readAll);return i.info(`reading ${r.length} entries from the table`),JSON.stringify((await super.readAll(t,r)).map(t=>this.serialize(t)))}async updateAll(t,e){const{log:r}=await this.logCtx([t],this.updateAll),i=JSON.parse(e).map(t=>this.deserialize(t)).map(t=>new this.clazz(t));return r.info(`Updating ${i.length} entries to the table`),JSON.stringify((await super.updateAll(t,i)).map(t=>this.serialize(t)))}async raw(t,e,r){const{ctx:i}=await this.logCtx([t],this.raw),a=JSON.parse(e);return super.raw(i,a,r)}async init(t){await super.init(t)}async healthcheck(t){return JSON.stringify(await super.healthcheck(t))}async createAll(t,e){const{log:r}=await this.logCtx([t],this.createAll),i=JSON.parse(e).map(t=>this.deserialize(t)).map(t=>new this.clazz(t));return r.info(`Adding ${i.length} entries to the table`),JSON.stringify((await super.createAll(t,i)).map(t=>this.serialize(t)))}}nt([z(),ot("design:type",Function),ot("design:paramtypes",[R,String]),ot("design:returntype",Promise)],Rt.prototype,"create",null),nt([z(!1),ot("design:type",Function),ot("design:paramtypes",[R,String]),ot("design:returntype",Promise)],Rt.prototype,"read",null),nt([z(),ot("design:type",Function),ot("design:paramtypes",[R,String]),ot("design:returntype",Promise)],Rt.prototype,"update",null),nt([z(),ot("design:type",Function),ot("design:paramtypes",[R,String]),ot("design:returntype",Promise)],Rt.prototype,"delete",null),nt([z(),ot("design:type",Function),ot("design:paramtypes",[R,String]),ot("design:returntype",Promise)],Rt.prototype,"deleteAll",null),nt([z(!1),ot("design:type",Function),ot("design:paramtypes",[R,String]),ot("design:returntype",Promise)],Rt.prototype,"readAll",null),nt([z(),ot("design:type",Function),ot("design:paramtypes",[R,String]),ot("design:returntype",Promise)],Rt.prototype,"updateAll",null),nt([z(!1),ot("design:type",Function),ot("design:paramtypes",[R,String,Boolean]),ot("design:returntype",Promise)],Rt.prototype,"raw",null),nt([z(),ot("design:type",Function),ot("design:paramtypes",[R]),ot("design:returntype",Promise)],Rt.prototype,"init",null),nt([z(!1),ot("design:type",Function),ot("design:paramtypes",[R]),ot("design:returntype",Promise)],Rt.prototype,"healthcheck",null),nt([z(),ot("design:type",Function),ot("design:paramtypes",[R,String]),ot("design:returntype",Promise)],Rt.prototype,"createAll",null);class zt extends w{constructor(t){super(t,zt.name)}}class Tt extends w{constructor(t){super(t,Tt.name)}}class Pt extends w{constructor(t){super(t,Pt.name)}}class It extends C{constructor(t){super(It.name,t,409)}}function Dt(t,e){const r=t+e;if(t!==r-e||e!==r-t)throw new zt(`Addition overflow: ${t} + ${e}`);return r}function $t(t,e){const r=t-e;if(t!==r+e||e!==t-r)throw new zt(`Subtraction overflow: ${t} - ${e}`);return r}let Ft=class extends B{constructor(t){super(t)}};nt([$({type:"String"}),ot("design:type",String)],Ft.prototype,"name",void 0),nt([Q(),n(),ot("design:type",String)],Ft.prototype,"owner",void 0),nt([Q(),n(),ot("design:type",String)],Ft.prototype,"symbol",void 0),nt([Q(),n(),ot("design:type",Number)],Ft.prototype,"decimals",void 0),Ft=nt([j("erc20_tokens"),o(),ot("design:paramtypes",[Object])],Ft);let jt=class extends B{constructor(t){super(t)}};nt([$({type:"String"}),ot("design:type",String)],jt.prototype,"id",void 0),nt([Q(),n(),ot("design:type",String)],jt.prototype,"token",void 0),nt([Q(),n(),ot("design:type",Number)],jt.prototype,"balance",void 0),nt([Q(),ot("design:type",String)],jt.prototype,"captive",void 0),jt=nt([j("erc20_wallets"),o(),ot("design:paramtypes",[Object])],jt);let Bt=class extends B{constructor(t){super(t)}};function _t(){return function(t,e,r){const i=r.value;return r.value=async function(...t){const r=t[0],a=r.clientIdentity.getID(),s=await this.tokenRepository.select(),n=await s.execute(r);if(0==n.length)throw new y("No tokens avaialble");if(n.length>1)throw new y("To many token available : "+n.length);if(n[0].owner!=a)throw new G(`User not authorized to run ${e} on the token`);return await i.apply(this,t)},r}}var Lt;nt([$({type:"String"}),Q(),n(),ot("design:type",String)],Bt.prototype,"owner",void 0),nt([Q(),n(),ot("design:type",String)],Bt.prototype,"spender",void 0),nt([Q(),n(),ot("design:type",Number)],Bt.prototype,"value",void 0),Bt=nt([j("erc20_allowances"),o(),ot("design:paramtypes",[Object])],Bt),(t=>{t.TRANSFER="Transfer",t.APPROVAL="Approval"})(Lt||(Lt={}));class Jt extends Nt{constructor(t){super(t,jt),Jt.adapter=Jt.adapter||new Et,this.walletRepository=ut.forModel(jt,Jt.adapter.alias),this.tokenRepository=ut.forModel(Ft,Jt.adapter.alias),this.allowanceRepository=ut.forModel(Bt,Jt.adapter.alias)}async TokenName(t){await this.CheckInitialized(t);const e=await this.tokenRepository.select();return(await e.execute(t))[0].name}async Symbol(t){await this.CheckInitialized(t);const e=await this.tokenRepository.select();return(await e.execute(t))[0].symbol}async Decimals(t){await this.CheckInitialized(t);const e=await this.tokenRepository.select();return(await e.execute(t))[0].decimals}async TotalSupply(t){await this.CheckInitialized(t);const e=await this.walletRepository.select(),r=await e.execute(t);if(0==r.length)throw new y(`The token ${this.getName()} does not exist`);let i=0;return r.forEach(t=>{i+=t.balance}),i}async BalanceOf(t,e){return await this.CheckInitialized(t),(await this.walletRepository.read(e,t)).balance}async Transfer(t,e,r){await this.CheckInitialized(t);const{ctx:i}=await this.logCtx([t],this.Transfer),a=i.identity.getID();if(!await this._transfer(a,e,r,i))throw new w("Failed to transfer");return!0}async TransferFrom(t,e,r,i){await this.CheckInitialized(t);const{ctx:a}=await this.logCtx([t],this.BurnFrom),s=a.identity.getID(),n=await this._getAllowance(e,s,a);if(!n||0>n.value)throw new Pt(`spender ${s} has no allowance from ${e}`);const o=n.value;if(i>o)throw new Tt("The spender does not have enough allowance to spend.");const c=$t(o,i),l=Object.assign({},n,{value:c});if(await this.allowanceRepository.update(l,a),!await this._transfer(e,r,i,a))throw new w("Failed to transfer");return!0}async _transfer(t,e,r,i){const a=i.logger;if(t===e)throw new G("cannot transfer to and from same client account");if(0>r)throw new Tt("transfer amount cannot be negative");const s=await this.walletRepository.read(t,i),n=s.balance;if(r>n)throw new Tt(`client account ${t} has insufficient funds.`);let o,c=!1;try{o=await this.walletRepository.read(e,i)}catch(t){if(!(t instanceof C))throw new w(t);if(404!==t.code)throw new w(t.message);o=new jt({id:e,balance:0,token:await this.TokenName(i)}),c=!0}const l=o.balance,u=$t(n,r),p=Dt(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(Ft,Lt.TRANSFER,"",g,i).catch(t=>a.error("Failed to notify transfer: "+t)),!0}async Approve(t,e,r){await this.CheckInitialized(t);const{ctx:i,ctxArgs:a}=await this.logCtx([t],this.Approve),s=i.identity.getID();let n=await this._getAllowance(s,e,i);if((await this.walletRepository.read(s,...a)).balance<r)throw new Tt(`client account ${s} has insufficient funds.`);n?(n.value=r,await this.allowanceRepository.update(n,...a)):(n=new Bt({owner:s,spender:e,value:r}),await this.allowanceRepository.create(n,...a));const o={owner:s,spender:e,value:r};return this.repo.refresh(Ft,Lt.APPROVAL,"",o,i),!0}async Allowance(t,e,r){await this.CheckInitialized(t);const{ctx:i}=await this.logCtx([t],this.Allowance),a=await this._getAllowance(e,r,i);if(!a)throw new Pt(`spender ${r} has no allowance from ${e}`);return a.value}async _getAllowance(t,e,r){const i=D.and(D.attribute("owner").eq(t),D.attribute("spender").eq(e)),a=await this.allowanceRepository.select().where(i).execute(r);return a?.[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 G("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 It("contract options need to be set before calling any function, call Initialize() to initialize contract")}async Mint(t,e){await this.CheckInitialized(t);const{ctx:r}=await this.logCtx([t],this.Mint),i=r.identity.getID();if(0>=e)throw new O("mint amount must be a positive integer");let a;try{a=await this.walletRepository.read(i,r);const t=Dt(a.balance,e),s=Object.assign({},a,{balance:t});await this.walletRepository.update(s,r)}catch(a){if(!(a instanceof C))throw new w(a);if(404!==a.code)throw new w(a.message);{const a=new jt({id:i,balance:e,token:await this.TokenName(t)});await this.walletRepository.create(a,r)}}const s={from:"0x0",to:i,value:e};this.repo.ObserverHandler().updateObservers(Ft,Lt.TRANSFER,"",s,r)}async Burn(t,e){await this.CheckInitialized(t);const{log:r,ctx:i}=await this.logCtx([t],this.Burn),a=i.identity.getID(),s=await this.walletRepository.read(a,i),n=s.balance;if(e>n)throw new Tt("Minter has insufficient funds.");const o=$t(n,e),c=Object.assign({},s,{balance:o});await this.walletRepository.update(c,i),r.info(e+" tokens were burned");const l={from:a,to:"0x0",value:e};this.repo.ObserverHandler().updateObservers(Ft,Lt.TRANSFER,"",l,i)}async BurnFrom(t,e,r){await this.CheckInitialized(t);const{log:i,ctx:a}=await this.logCtx([t],this.BurnFrom),s=await this.walletRepository.read(e,a),n=s.balance;if(r>n)throw new Tt(e+" has insufficient funds.");const o=$t(n,r),c=Object.assign({},s,{balance:o});await this.walletRepository.update(c,a),i.info(`${r} tokens were burned from ${e}`);const l={from:e,to:"0x0",value:r};this.repo.ObserverHandler().updateObservers(Ft,Lt.TRANSFER,"",l,a)}async ClientAccountBalance(t){await this.CheckInitialized(t);const e=t.clientIdentity.getID(),r=await this.walletRepository.read(e,t);if(!r)throw new Tt(`The account ${e} does not exist`);return r.balance}async ClientAccountID(t){await this.CheckInitialized(t);const{ctx:e}=await this.logCtx([t],this.ClientAccountID);return e.identity.getID()}}nt([z(!1),ot("design:type",Function),ot("design:paramtypes",[R]),ot("design:returntype",Promise)],Jt.prototype,"TokenName",null),nt([z(!1),ot("design:type",Function),ot("design:paramtypes",[R]),ot("design:returntype",Promise)],Jt.prototype,"Symbol",null),nt([z(!1),ot("design:type",Function),ot("design:paramtypes",[R]),ot("design:returntype",Promise)],Jt.prototype,"Decimals",null),nt([z(!1),ot("design:type",Function),ot("design:paramtypes",[R]),ot("design:returntype",Promise)],Jt.prototype,"TotalSupply",null),nt([z(!1),ot("design:type",Function),ot("design:paramtypes",[R,String]),ot("design:returntype",Promise)],Jt.prototype,"BalanceOf",null),nt([z(),ot("design:type",Function),ot("design:paramtypes",[R,String,Number]),ot("design:returntype",Promise)],Jt.prototype,"Transfer",null),nt([z(),ot("design:type",Function),ot("design:paramtypes",[R,String,String,Number]),ot("design:returntype",Promise)],Jt.prototype,"TransferFrom",null),nt([z(),ot("design:type",Function),ot("design:paramtypes",[R,String,Number]),ot("design:returntype",Promise)],Jt.prototype,"Approve",null),nt([z(!1),ot("design:type",Function),ot("design:paramtypes",[R,String,String]),ot("design:returntype",Promise)],Jt.prototype,"Allowance",null),nt([z(),ot("design:type",Function),ot("design:paramtypes",[R,Ft]),ot("design:returntype",Promise)],Jt.prototype,"Initialize",null),nt([z(!1),ot("design:type",Function),ot("design:paramtypes",[R]),ot("design:returntype",Promise)],Jt.prototype,"CheckInitialized",null),nt([_t(),z(),ot("design:type",Function),ot("design:paramtypes",[R,Number]),ot("design:returntype",Promise)],Jt.prototype,"Mint",null),nt([_t(),z(),ot("design:type",Function),ot("design:paramtypes",[R,Number]),ot("design:returntype",Promise)],Jt.prototype,"Burn",null),nt([_t(),z(),ot("design:type",Function),ot("design:paramtypes",[R,String,Number]),ot("design:returntype",Promise)],Jt.prototype,"BurnFrom",null),nt([z(!1),ot("design:type",Function),ot("design:paramtypes",[R]),ot("design:returntype",Promise)],Jt.prototype,"ClientAccountBalance",null),nt([z(!1),ot("design:type",Function),ot("design:paramtypes",[R]),ot("design:returntype",Promise)],Jt.prototype,"ClientAccountID",null);const qt=[Jt];class Mt extends X{constructor(t,e,r){super(t,e),this.logger=r?r.logging.getLogger(t):new X(t,e)}log(t,e,r){if(Z[this.config("level")]<Z[t])return;let i;switch(t){case tt.info:i=this.logger.info;break;case tt.verbose:i=this.logger.verbose;break;case tt.debug:i=this.logger.debug;break;case tt.error:i=this.logger.error;break;case tt.silly:i=this.logger.silly;break;default:throw new w("Invalid log level")}i.call(this.logger,this.createLog(t,e,r))}}W.setFactory((t,e,r)=>new Mt(t||Mt.name,e||{},r));const Ut="##VERSION##",Yt="##PACKAGE##";et.registerLibrary(Yt,Ut);export{Mt as ContractLogger,Et as FabricContractAdapter,ct as FabricContractContext,ut as FabricContractRepository,lt as FabricContractRepositoryObservableHandler,ht as FabricContractSequence,Nt as FabricCrudContract,pt as FabricStatement,Yt as PACKAGE_NAME,Rt as SerializedCrudContract,Ut as VERSION,qt as contracts,Ct as createdByOnFabricCreateUpdate,Ot as pkFabricOnCreate};
2
2
  //# sourceMappingURL=for-fabric.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"for-fabric.js","sources":["../src/contracts/ContractContext.ts","../src/contracts/FabricContractRepositoryObservableHandler.ts","../src/shared/events.ts","../src/contracts/FabricContractRepository.ts","../src/contracts/FabricContractStatement.ts","../src/shared/model/Sequence.ts","../src/contracts/FabricContractSequence.ts","../src/shared/constants.ts","../src/shared/SimpleDeterministicSerializer.ts","../src/contracts/FabricConstruction.ts","../src/contracts/ContractAdapter.ts","../src/shared/DeterministicSerializer.ts","../src/contracts/crud/crud-contract.ts","../src/contracts/crud/serialized-crud-contract.ts","../src/shared/errors.ts","../src/shared/math.ts","../src/contracts/erc20/models.ts","../src/shared/decorators.ts","../src/shared/erc20/erc20-constants.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],"names":["FabricContractContext","Context","constructor","super","stub","this","get","timestamp","getDateTimestamp","identity","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","name","indexOf","debug","eventName","params","push","join","generateFabricEventName","setEvent","Buffer","from","JSON","stringify","FabricContractRepository","Repository","adapter","trackedEvents","logFor","logger","Logging","for","correlationId","getTxID","FabricStatement","CouchDBStatement","raw","rawInput","results","pkAttr","Model","pk","fromSelector","type","Metadata","key","DBKeys","ID","selectSelector","map","r","processRecord","build","selectors","CouchDBKeys","TABLE","tableName","query","selector","fields","whereCondition","condition","parseCondition","Condition","and","attribute","eq","selectorKeys","Object","keys","length","values","CouchDBGroupOperator","AND","reduce","accum","val","Error","k","OR","s","entries","result","forEach","orderBySelector","sort","value","rec","CouchDBOperator","BIGGER","limitSelector","limit","offsetSelector","skip","SequenceModel","BaseModel","seq","__decorate","prototype","required","index","SEQUENCE","model","FabricContractSequence","Sequence","options","repo","forModel","alias","current","READ","context","startWith","sequence","read","parse","e","NotFoundError","InternalError","increment","count","incrementBy","next","toIncrementBy","BigInt","update","create","argz","contextArgs","undefined","range","i","FabricModelKeys","IdentityType","FabricFlavour","SimpleDeterministicSerializer","JSONSerializer","deserialize","str","serialize","require","sortKeysRecursive","preSerialize","assign","async","oneToOneOnCreate","data","propertyValue","innerRepo","repositoryFromTypeMetadata","cacheModelForPopulate","class","created","oneToOneOnUpdate","cascade","Cascade","CASCADE","updated","createOrUpdate","oneToOneOnDelete","deleted","delete","oneToManyOnCreate","propertyValues","arrayType","every","item","uniqueValues","Set","pkName","m","record","add","oneToManyOnDelete","isInstantiated","v","populate","nested","isArr","Array","isArray","res","c","propName","propKeyValues","cacheKey","proKeyValue","getPopulateKey","fetchPopulateValues","createdByOnFabricCreateUpdate","user","getID","UnsupportedError","pkFabricOnCreate","sequenceName","defineProperty","enumerable","writable","configurable","FabricContractAdapter","CouchDBAdapter","getClient","textDecoder","TextDecoder","serializer","repository","scope","config","info","composedKey","createCompositeKey","String","putState","parseError","readState","pop","mergeModels","verbose","ctxArgs","deleteState","trace","forPrivate","collection","toOverride","queryResult","queryResultPaginated","fn","Proxy","target","prop","receiver","includes","apply","thisArg","argsList","putPrivateData","toString","deletePrivateData","getPrivateData","getPrivateDataQueryResult","iterator","reachedBookmark","lastKey","recordKey","recordValue","Key","Record","close","metadata","fetchedRecordsCount","bookmark","done","Reflect","SerializationError","silly","getState","getQueryResult","getQueryResultWithPagination","extract","finalModel","decode","buffer","flags","operation","ensureLogger","base","clear","fabricCtx","accumulate","clientIdentity","baseFlags","models","Promise","resolve","resultIterator","isHistory","allResults","jsonRes","TxId","txId","Timestamp","Value","err","error","shift","Statement","createAll","tableLabel","all","updateAll","prepare","split","segregate","mappedProp","columnName","isReserved","transient","revert","obj","ob","createPrefix","updatePrefix","createAllPrefix","ids","records","updateAllPrefix","reason","decoration","Decoration","flavouredAs","PersistenceKeys","CREATED_BY","define","onCreate","propMetadata","UPDATED_BY","onCreateUpdate","decorator","groupsort","attr","readonly","COLUMN","extend","FabricProperty","FabricObject","ONE_TO_ONE","joinColumnOpts","fk","meta","joinTable","relation","Number","onUpdate","onDelete","afterAny","ONE_TO_MANY","joinTableOpts","list","oneToManyOnUpdate","setCurrent","DeterministicSerializer","FabricCrudContract","Contract","initialized","getTransientData","merge","transientMap","getTransient","has","deleteAll","readAll","docsOnly","init","healthcheck","method","bind","overrides","READ_ALL","getOp","SerializedCrudContract","parsedKeys","modelList","parsedInput","Transaction","Ctx","Boolean","OverflowError","msg","BalanceError","AllowanceError","NotInitializedError","BaseError","a","b","sub","ERC20Token","column","ERC20Wallet","Allowance","Owner","propertyKey","descriptor","originalMethod","acountId","select","tokens","execute","AuthorizationError","ERC20Events","FabricERC20Contract","walletRepository","tokenRepository","allowanceRepository","TokenName","CheckInitialized","Symbol","symbol","Decimals","decimals","TotalSupply","wallets","getName","total","wallet","balance","BalanceOf","Transfer","to","_transfer","TransferFrom","BurnFrom","spender","allowance","_getAllowance","currentAllowance","updatedAllowance","newAllowance","fromWallet","fromBalance","toWallet","newToWallet","code","message","token","toBalance","fromUpdatedBalance","toUpdatedBalance","updatedFromWallet","updatedToWallet","transferEvent","refresh","TRANSFER","catch","Approve","approvalEvent","APPROVAL","allowanceCondition","where","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","level","stack","NumericLogLevels","LogLevel","call","createLog","setFactory","object","VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
1
+ {"version":3,"file":"for-fabric.js","sources":["../src/contracts/ContractContext.ts","../src/contracts/FabricContractRepositoryObservableHandler.ts","../src/shared/events.ts","../src/contracts/FabricContractRepository.ts","../src/contracts/FabricContractStatement.ts","../src/shared/model/Sequence.ts","../src/contracts/FabricContractSequence.ts","../src/shared/constants.ts","../src/shared/SimpleDeterministicSerializer.ts","../src/contracts/FabricConstruction.ts","../src/contracts/ContractAdapter.ts","../src/shared/DeterministicSerializer.ts","../src/contracts/crud/crud-contract.ts","../src/contracts/crud/serialized-crud-contract.ts","../src/shared/errors.ts","../src/shared/math.ts","../src/contracts/erc20/models.ts","../src/shared/decorators.ts","../src/shared/erc20/erc20-constants.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],"names":["FabricContractContext","Context","constructor","super","stub","this","get","timestamp","getDateTimestamp","identity","toString","JSON","stringify","cache","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","name","indexOf","debug","eventName","params","push","join","generateFabricEventName","setEvent","Buffer","from","FabricContractRepository","Repository","adapter","trackedEvents","logFor","logger","l","Logging","for","correlationId","getTxID","info","FabricStatement","CouchDBStatement","raw","rawInput","results","pkAttr","Model","pk","fromSelector","type","Metadata","key","DBKeys","ID","selectSelector","map","r","processRecord","build","selectors","CouchDBKeys","TABLE","tableName","query","selector","fields","whereCondition","condition","parseCondition","Condition","and","attribute","eq","selectorKeys","Object","keys","length","values","CouchDBGroupOperator","AND","reduce","accum","val","Error","k","OR","s","entries","result","forEach","orderBySelector","sort","value","rec","CouchDBOperator","BIGGER","limitSelector","limit","offsetSelector","skip","SequenceModel","BaseModel","seq","__decorate","prototype","required","index","SEQUENCE","model","FabricContractSequence","Sequence","options","repo","forModel","alias","current","READ","context","startWith","sequence","read","parse","e","NotFoundError","InternalError","increment","count","incrementBy","next","toIncrementBy","BigInt","update","create","argz","contextArgs","undefined","range","i","FabricModelKeys","IdentityType","FabricFlavour","SimpleDeterministicSerializer","JSONSerializer","deserialize","str","serialize","require","sortKeysRecursive","preSerialize","assign","async","oneToOneOnCreate","data","propertyValue","innerRepo","repositoryFromTypeMetadata","cacheModelForPopulate","class","created","oneToOneOnUpdate","cascade","Cascade","CASCADE","updated","createOrUpdate","oneToOneOnDelete","deleted","delete","oneToManyOnCreate","propertyValues","arrayType","every","item","uniqueValues","Set","pkName","m","record","add","oneToManyOnDelete","isInstantiated","v","populate","nested","isArr","Array","isArray","res","c","propName","propKeyValues","cacheKey","proKeyValue","getPopulateKey","fetchPopulateValues","createdByOnFabricCreateUpdate","user","getID","UnsupportedError","pkFabricOnCreate","sequenceName","defineProperty","enumerable","writable","configurable","FabricContractAdapter","CouchDBAdapter","getClient","textDecoder","TextDecoder","serializer","repository","scope","config","composedKey","createCompositeKey","String","putState","parseError","readState","verbose","ctxArgs","deleteState","trace","forPrivate","collection","toOverride","queryResult","queryResultPaginated","fn","Proxy","target","prop","receiver","includes","apply","thisArg","argsList","putPrivateData","deletePrivateData","getPrivateData","getPrivateDataQueryResult","iterator","reachedBookmark","lastKey","recordKey","recordValue","Key","Record","close","metadata","fetchedRecordsCount","bookmark","done","Reflect","SerializationError","silly","getState","getQueryResult","getQueryResultWithPagination","mergeModels","extract","finalModel","pop","decode","buffer","flags","operation","ensureLogger","base","clear","fabricCtx","accumulate","clientIdentity","baseFlags","models","Promise","resolve","resultIterator","isHistory","allResults","jsonRes","TxId","txId","Timestamp","Value","err","error","shift","Statement","createAll","tableLabel","all","updateAll","prepare","split","segregate","mappedProp","columnName","isReserved","transient","revert","obj","ob","createPrefix","updatePrefix","createAllPrefix","ids","records","updateAllPrefix","reason","decoration","Decoration","flavouredAs","PersistenceKeys","CREATED_BY","define","onCreate","propMetadata","UPDATED_BY","onCreateUpdate","decorator","groupsort","attr","readonly","COLUMN","extend","FabricProperty","FabricObject","ONE_TO_ONE","joinColumnOpts","fk","meta","joinTable","relation","Number","onUpdate","onDelete","afterAny","ONE_TO_MANY","joinTableOpts","list","oneToManyOnUpdate","setCurrent","DeterministicSerializer","FabricCrudContract","Contract","initialized","getTransientData","merge","transientMap","getTransient","has","deleteAll","readAll","docsOnly","init","healthcheck","method","bind","overrides","READ_ALL","getOp","SerializedCrudContract","parsedKeys","modelList","parsedInput","Transaction","Ctx","Boolean","OverflowError","msg","BalanceError","AllowanceError","NotInitializedError","BaseError","a","b","sub","ERC20Token","column","ERC20Wallet","Allowance","Owner","propertyKey","descriptor","originalMethod","acountId","select","tokens","execute","AuthorizationError","ERC20Events","FabricERC20Contract","walletRepository","tokenRepository","allowanceRepository","TokenName","CheckInitialized","Symbol","symbol","Decimals","decimals","TotalSupply","wallets","getName","total","wallet","balance","BalanceOf","Transfer","to","_transfer","TransferFrom","BurnFrom","spender","allowance","_getAllowance","currentAllowance","updatedAllowance","newAllowance","fromWallet","fromBalance","toWallet","newToWallet","code","message","token","toBalance","fromUpdatedBalance","toUpdatedBalance","updatedFromWallet","updatedToWallet","transferEvent","refresh","TRANSFER","catch","Approve","approvalEvent","APPROVAL","allowanceCondition","where","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","level","stack","NumericLogLevels","LogLevel","call","createLog","setFactory","object","VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
@@ -188,6 +188,7 @@ class FabricContractAdapter extends for_couchdb_1.CouchDBAdapter {
188
188
  */
189
189
  async create(clazz, id, model, ...args) {
190
190
  const { ctx, log } = this.logCtx(args, this.create);
191
+ log.info(`in ADAPTER create with args ${args}`);
191
192
  const { stub } = ctx;
192
193
  const tableName = decorator_validation_1.Model.tableName(clazz);
193
194
  try {
@@ -210,23 +211,13 @@ class FabricContractAdapter extends for_couchdb_1.CouchDBAdapter {
210
211
  */
211
212
  async read(clazz, id, ...args) {
212
213
  const { ctx, log } = this.logCtx(args, this.read);
214
+ log.info(`in ADAPTER read with args ${args}`);
213
215
  const { stub } = ctx;
214
216
  const tableName = decorator_validation_1.Model.tableName(clazz);
215
217
  let model;
216
218
  try {
217
219
  const composedKey = stub.createCompositeKey(tableName, [String(id)]);
218
- const results = await this.readState(composedKey, ctx);
219
- if (results.length < 1) {
220
- log.debug(`No record found for id ${id} in ${tableName} table`);
221
- throw new db_decorators_1.NotFoundError(`No record found for id ${id} in ${tableName} table`);
222
- }
223
- else if (results.length < 2) {
224
- log.debug(`No record found for id ${id} in ${tableName} table`);
225
- model = results.pop();
226
- }
227
- else {
228
- model = this.mergeModels(results);
229
- }
220
+ model = await this.readState(composedKey, ctx);
230
221
  }
231
222
  catch (e) {
232
223
  throw this.parseError(e);
@@ -1 +1 @@
1
- {"version":3,"file":"ContractAdapter.js","sourceRoot":"","sources":["../../src/contracts/ContractAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ContractAdapter.js","sourceRoot":"","sources":["../../src/contracts/ContractAdapter.ts"],"names":[],"mappings":"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"}
@@ -64,6 +64,9 @@ class FabricContractContext extends db_decorators_1.Context {
64
64
  get identity() {
65
65
  return this.get("identity");
66
66
  }
67
+ toString() {
68
+ return `fabric ctx: ${JSON.stringify(this.cache)}`;
69
+ }
67
70
  }
68
71
  exports.FabricContractContext = FabricContractContext;
69
72
  //# sourceMappingURL=ContractContext.js.map
@@ -55,4 +55,5 @@ export declare class FabricContractContext extends Context<FabricContractFlags>
55
55
  * @return {ClientIdentity} The client identity
56
56
  */
57
57
  get identity(): ClientIdentity;
58
+ toString(): string;
58
59
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ContractContext.js","sourceRoot":"","sources":["../../src/contracts/ContractContext.ts"],"names":[],"mappings":";;;AAAA,2DAAkD;AAIlD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAa,qBAAsB,SAAQ,uBAA4B;IACrE;;;OAGG;IACH;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAED;;;;OAIG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED;;;;OAIG;IACH,IAAa,SAAS;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACtC,CAAC;IAED;;;;OAIG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;CACF;AAnCD,sDAmCC"}
1
+ {"version":3,"file":"ContractContext.js","sourceRoot":"","sources":["../../src/contracts/ContractContext.ts"],"names":[],"mappings":";;;AAAA,2DAAkD;AAIlD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAa,qBAAsB,SAAQ,uBAA4B;IACrE;;;OAGG;IACH;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAED;;;;OAIG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED;;;;OAIG;IACH,IAAa,SAAS;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACtC,CAAC;IAED;;;;OAIG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;IAEQ,QAAQ;QACf,OAAO,eAAe,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;IACrD,CAAC;CACF;AAvCD,sDAuCC"}