@decaf-ts/for-fabric 0.1.49 → 0.1.51

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.
Files changed (117) hide show
  1. package/dist/for-fabric.cjs +1 -1
  2. package/dist/for-fabric.cjs.map +1 -1
  3. package/dist/for-fabric.js +1 -1
  4. package/dist/for-fabric.js.map +1 -1
  5. package/lib/cli-module.cjs +11 -5
  6. package/lib/cli-module.js.map +1 -1
  7. package/lib/client/FabricClientAdapter.cjs +2 -1
  8. package/lib/client/FabricClientAdapter.js.map +1 -1
  9. package/lib/client/FabricClientDispatch.cjs +2 -2
  10. package/lib/client/FabricClientDispatch.js.map +1 -1
  11. package/lib/client/FabricClientRepository.cjs +14 -18
  12. package/lib/client/FabricClientRepository.d.ts +1 -1
  13. package/lib/client/FabricClientRepository.js.map +1 -1
  14. package/lib/client/erc20/FabricERC20ClientRepository.cjs +12 -18
  15. package/lib/client/erc20/FabricERC20ClientRepository.d.ts +7 -7
  16. package/lib/client/erc20/FabricERC20ClientRepository.js.map +1 -1
  17. package/lib/client/index.cjs +5 -2
  18. package/lib/client/index.d.ts +5 -2
  19. package/lib/client/index.js.map +1 -1
  20. package/lib/client/services/FabricEnrollmentService.cjs +1 -1
  21. package/lib/client/services/FabricEnrollmentService.js.map +1 -1
  22. package/lib/client/services/FabricIdentityService.cjs +1 -1
  23. package/lib/client/services/FabricIdentityService.js.map +1 -1
  24. package/lib/{shared → client}/utils.cjs +3 -3
  25. package/lib/{esm/shared → client}/utils.d.ts +1 -1
  26. package/lib/client/utils.js.map +1 -0
  27. package/lib/contracts/ContractAdapter.cjs +155 -46
  28. package/lib/contracts/ContractAdapter.d.ts +12 -17
  29. package/lib/contracts/ContractAdapter.js.map +1 -1
  30. package/lib/contracts/FabricContractPaginator.cjs +17 -12
  31. package/lib/contracts/FabricContractPaginator.d.ts +2 -2
  32. package/lib/contracts/FabricContractPaginator.js.map +1 -1
  33. package/lib/contracts/FabricContractRepository.cjs +5 -7
  34. package/lib/contracts/FabricContractRepository.d.ts +1 -8
  35. package/lib/contracts/FabricContractRepository.js.map +1 -1
  36. package/lib/contracts/FabricContractRepositoryObservableHandler.cjs +1 -1
  37. package/lib/contracts/FabricContractRepositoryObservableHandler.js.map +1 -1
  38. package/lib/contracts/FabricContractSequence.cjs +2 -4
  39. package/lib/contracts/FabricContractSequence.js.map +1 -1
  40. package/lib/contracts/FabricContractStatement.cjs +6 -0
  41. package/lib/contracts/FabricContractStatement.d.ts +3 -1
  42. package/lib/contracts/FabricContractStatement.js.map +1 -1
  43. package/lib/contracts/crud/crud-contract.cjs +31 -65
  44. package/lib/contracts/crud/crud-contract.d.ts +8 -17
  45. package/lib/contracts/crud/crud-contract.js.map +1 -1
  46. package/lib/contracts/crud/serialized-crud-contract.cjs +19 -56
  47. package/lib/contracts/crud/serialized-crud-contract.d.ts +13 -15
  48. package/lib/contracts/crud/serialized-crud-contract.js.map +1 -1
  49. package/lib/contracts/erc20/models.cjs +3 -3
  50. package/lib/contracts/erc20/models.js.map +1 -1
  51. package/lib/contracts/logging.cjs +7 -0
  52. package/lib/contracts/logging.js.map +1 -1
  53. package/lib/esm/cli-module.js +11 -5
  54. package/lib/esm/cli-module.js.map +1 -1
  55. package/lib/esm/client/FabricClientAdapter.js +2 -1
  56. package/lib/esm/client/FabricClientAdapter.js.map +1 -1
  57. package/lib/esm/client/FabricClientDispatch.js +3 -3
  58. package/lib/esm/client/FabricClientDispatch.js.map +1 -1
  59. package/lib/esm/client/FabricClientRepository.d.ts +1 -1
  60. package/lib/esm/client/FabricClientRepository.js +15 -19
  61. package/lib/esm/client/FabricClientRepository.js.map +1 -1
  62. package/lib/esm/client/erc20/FabricERC20ClientRepository.d.ts +7 -7
  63. package/lib/esm/client/erc20/FabricERC20ClientRepository.js +12 -18
  64. package/lib/esm/client/erc20/FabricERC20ClientRepository.js.map +1 -1
  65. package/lib/esm/client/index.d.ts +5 -2
  66. package/lib/esm/client/index.js +5 -2
  67. package/lib/esm/client/index.js.map +1 -1
  68. package/lib/esm/client/services/FabricEnrollmentService.js +1 -1
  69. package/lib/esm/client/services/FabricEnrollmentService.js.map +1 -1
  70. package/lib/esm/client/services/FabricIdentityService.js +1 -1
  71. package/lib/esm/client/services/FabricIdentityService.js.map +1 -1
  72. package/lib/{shared → esm/client}/utils.d.ts +1 -1
  73. package/lib/esm/{shared → client}/utils.js +2 -2
  74. package/lib/esm/client/utils.js.map +1 -0
  75. package/lib/esm/contracts/ContractAdapter.d.ts +12 -17
  76. package/lib/esm/contracts/ContractAdapter.js +156 -47
  77. package/lib/esm/contracts/ContractAdapter.js.map +1 -1
  78. package/lib/esm/contracts/FabricContractPaginator.d.ts +2 -2
  79. package/lib/esm/contracts/FabricContractPaginator.js +18 -13
  80. package/lib/esm/contracts/FabricContractPaginator.js.map +1 -1
  81. package/lib/esm/contracts/FabricContractRepository.d.ts +1 -8
  82. package/lib/esm/contracts/FabricContractRepository.js +6 -8
  83. package/lib/esm/contracts/FabricContractRepository.js.map +1 -1
  84. package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js +1 -1
  85. package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js.map +1 -1
  86. package/lib/esm/contracts/FabricContractSequence.js +3 -5
  87. package/lib/esm/contracts/FabricContractSequence.js.map +1 -1
  88. package/lib/esm/contracts/FabricContractStatement.d.ts +3 -1
  89. package/lib/esm/contracts/FabricContractStatement.js +8 -2
  90. package/lib/esm/contracts/FabricContractStatement.js.map +1 -1
  91. package/lib/esm/contracts/crud/crud-contract.d.ts +8 -17
  92. package/lib/esm/contracts/crud/crud-contract.js +34 -68
  93. package/lib/esm/contracts/crud/crud-contract.js.map +1 -1
  94. package/lib/esm/contracts/crud/serialized-crud-contract.d.ts +13 -15
  95. package/lib/esm/contracts/crud/serialized-crud-contract.js +19 -56
  96. package/lib/esm/contracts/crud/serialized-crud-contract.js.map +1 -1
  97. package/lib/esm/contracts/erc20/models.js +3 -3
  98. package/lib/esm/contracts/erc20/models.js.map +1 -1
  99. package/lib/esm/contracts/logging.js +7 -0
  100. package/lib/esm/contracts/logging.js.map +1 -1
  101. package/lib/esm/shared/index.d.ts +0 -1
  102. package/lib/esm/shared/index.js +0 -1
  103. package/lib/esm/shared/index.js.map +1 -1
  104. package/lib/esm/shared/overrides/overrides.js +10 -0
  105. package/lib/esm/shared/overrides/overrides.js.map +1 -1
  106. package/lib/esm/version.d.ts +1 -1
  107. package/lib/esm/version.js +1 -1
  108. package/lib/shared/index.cjs +0 -1
  109. package/lib/shared/index.d.ts +0 -1
  110. package/lib/shared/index.js.map +1 -1
  111. package/lib/shared/overrides/overrides.cjs +10 -0
  112. package/lib/shared/overrides/overrides.js.map +1 -1
  113. package/lib/version.cjs +1 -1
  114. package/lib/version.d.ts +1 -1
  115. package/package.json +1 -1
  116. package/lib/esm/shared/utils.js.map +0 -1
  117. package/lib/shared/utils.js.map +0 -1
@@ -1,2 +1,2 @@
1
- var t,e;t=this,e=function(t,e,r,a,n,i,o,s,c){"use strict";class l extends a.Context{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 d extends a.ObserverHandler{constructor(t=[n.OperationKeys.CREATE,n.OperationKeys.UPDATE,n.OperationKeys.DELETE,n.BulkCrudOperationKeys.CREATE_ALL,n.BulkCrudOperationKeys.UPDATE_ALL,n.BulkCrudOperationKeys.DELETE_ALL]){super(),this.supportedEvents=t}async updateObservers(t,e,r,...n){const{log:i,ctx:o}=a.Adapter.logCtx(n,this.updateObservers),{stub:s}=o,[c,l]=n,d="string"==typeof t?t:t.name;if(-1!==this.supportedEvents.indexOf(e)){i.debug(`Emitting ${e} event`);const t=((t,e,r)=>{const a=[t,e];return r&&a.push(r),a.join("_")})(d,e,c);s.setEvent(t,Buffer.from(JSON.stringify({id:r})))}else s.setEvent(e,Buffer.from(JSON.stringify(l)))}}class u extends a.Repository{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(t,e,n={offset:1,limit:10},...i){let{offset:o,bookmark:s,limit:c}=n;if(!o&&!s)throw new a.QueryError("PaginateBy needs a page or a bookmark");const l=await a.Context.args(a.PreparedStatementKeys.PAGE_BY,this.class,i,this.adapter,this._overrides||{}),{log:d,ctxArgs:u}=this.logCtx(l.args,this.paginateBy);let g;if(d.verbose(`paginating ${r.Model.tableName(this.class)} with page size ${c}`),s)g=await this.override({forcePrepareComplexQueries:!1,forcePrepareSimpleQueries:!1}).select().where(this.attr(r.Model.pk(this.class)).gt(s)).orderBy([t,e]).paginate(c,...u),o=1;else{if(!o)throw new a.QueryError("PaginateBy needs a page or a bookmark");g=await this.override({forcePrepareComplexQueries:!1,forcePrepareSimpleQueries:!1}).select().orderBy([t,e]).paginate(c,...u)}const p=await g.page(o,...u);return g.serialize(p)}async statement(t,...e){if(!a.Repository.statements(this,t))throw new a.QueryError("Invalid prepared statement requested "+t);const r=await a.Context.args(a.PersistenceKeys.STATEMENT,this.class,e,this.adapter,this._overrides||{});r.context.logger&&r.context.logger.info(`Repo statement: ${t} + ${e}`);const{log:i,ctxArgs:o}=this.logCtx(r.args,this.statement);let s;i.verbose(`Executing prepared statement ${t} with args ${o}`);try{s=await this[t](...o)}catch(e){if(e instanceof n.BaseError)throw e;throw new n.InternalError(`Failed to execute prepared statement ${t} with args ${o}: ${e}`)}return s}ObserverHandler(){return new d}async updateObservers(t,e,r,...a){if(!this.trackedEvents||-1!==this.trackedEvents.indexOf(e))return await super.updateObservers(t,e,r,...a)}}class g extends e.CouchDBStatement{constructor(t){super(t)}async raw(t,...e){const{ctx:a}=this.logCtx(e,this.raw),i=await this.adapter.raw(t,!0,a),s=r.Model.pk(this.fromSelector),c=o.Metadata.get(this.fromSelector,o.Metadata.key(n.DBKeys.ID,s))?.type;return this.selectSelector?i:i.map(t=>this.processRecord(t,s,c,a))}build(){const t={};t[e.CouchDBKeys.TABLE]={},t[e.CouchDBKeys.TABLE]=r.Model.tableName(this.fromSelector);const n={selector:t};if(this.selectSelector&&(n.fields=this.selectSelector),this.whereCondition){const t=this.parseCondition(a.Condition.and(this.whereCondition,a.Condition.attribute(e.CouchDBKeys.TABLE).eq(n.selector[e.CouchDBKeys.TABLE]))).selector,r=Object.keys(t);if(1===r.length&&-1!==Object.values(e.CouchDBGroupOperator).indexOf(r[0]))switch(r[0]){case e.CouchDBGroupOperator.AND:t[e.CouchDBGroupOperator.AND]=[...Object.values(t[e.CouchDBGroupOperator.AND]).reduce((t,r)=>{const a=Object.keys(r);if(1!==a.length)throw Error("Too many keys in query selector. should be one");const n=a[0];return n===e.CouchDBGroupOperator.AND?t.push(...r[n]):t.push(r),t},[])],n.selector=t;break;case e.CouchDBGroupOperator.OR:{const r={};r[e.CouchDBGroupOperator.AND]=[t,...Object.entries(n.selector).map(([t,e])=>{const r={};return r[t]=e,r})],n.selector=r;break}default:throw Error("This should be impossible")}else Object.entries(t).forEach(([t,e])=>{n.selector[t],n.selector[t]=e})}if(this.orderBySelector){n.sort=n.sort||[],n.selector=n.selector||{};const[t,r]=this.orderBySelector,a={};a[t]=r,n.sort.push(a),n.selector[t]||(n.selector[t]={},n.selector[t][e.CouchDBOperator.BIGGER]=null)}return this.limitSelector&&(n.limit=this.limitSelector),this.offsetSelector&&(n.skip=this.offsetSelector),n}}class p extends a.Sequence{constructor(t,e){super(t,e)}async current(...t){const e=(await a.Context.args(n.OperationKeys.READ,a.SequenceModel,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){const a=e.logger.for(this.current);if(t instanceof n.NotFoundError){let t;try{a.debug(`Trying to resolve current sequence ${r} value from context`),t=e.get(r),a.debug(`Retrieved cached current value for sequence ${r}: ${t}`)}catch(e){a.info(`No cached value for sequence ${r} in context`),t=i}try{return this.parse(t)}catch(t){throw new n.InternalError(`Failed to parse initial value for sequence ${i}: ${t}`)}}throw new n.InternalError(`Failed to retrieve current value for sequence ${r}: ${t}`)}}async increment(t,e){const r=e.logger.for(this.increment),{type:i,incrementBy:o,name:s}=this.options;if(!s)throw new n.InternalError("Sequence name is required");return r.info("Obtaining sequence lock for sequence "+s),p.lock.execute(async()=>{const c=t||o;if(c%o!==0)throw new n.InternalError("Value to increment does not consider the incrementBy setting: "+o);const l="function"==typeof i&&i?.name?i.name:i,d=await this.current(e);async function u(t){return t instanceof Promise&&(t=await t),e.logger.for(u).info(`Storing new ${s} seq value in cache: ${t.current}`),e.cache.put(s,t.current),t}const g=async t=>{try{return await u(this.repo.update(new a.SequenceModel({id:s,current:t}),e))}catch(i){if(i instanceof n.NotFoundError)return r.debug(`Sequence create ${s} current=${d} next=${t}`),u(this.repo.create(new a.SequenceModel({id:s,current:t}),e));throw i}};if("uuid"===l)for(;;){const t=a.UUID.instance.generate(d);try{const e=await g(t);return r.debug(`Sequence uuid increment ${s} current=${d} next=${t}`),e.current}catch(t){if(t instanceof n.ConflictError)continue;throw t}}const p=(t=>{switch(l){case Number.name:return this.parse(t)+c;case BigInt.name:return this.parse(t)+BigInt(c);case String.name:return this.parse(t);case"serial":return a.Serial.instance.generate(t);default:throw new n.InternalError("Should never happen")}})(d),h=await g(p);return r.debug(`Sequence.increment ${s} current=${d} next=${p}`),h.current},s)}}var h,y;(t=>{t.PRIVATE="private",t.SHARED="shared",t.FABRIC="fabric.",t.OWNEDBY="owned-by",t.TRANSACTION_ID="transaction-id"})(h||(h={})),(t=>{t.X509="X.509"})(y||(y={}));const m="hlf-fabric";class w extends r.JSONSerializer{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(t,e=!0){const a=Object.assign({},t);let n;try{n=o.Metadata.modelName(t.constructor)}catch(t){n=void 0}function i(t){return"object"!=typeof t?t:Array.isArray(t)?t.map(i):this.preSerialize(t)}return e&&(a[r.ModelKeys.ANCHOR]=n||t.constructor.name),r.Model.relations(t).forEach(t=>{a[t]=i.call(this,a[t])}),a}}class f extends s.MiniLogger{constructor(t,e,r){super(t,e),this.logger=r?r.logging.getLogger(t):new s.MiniLogger(t,e)}log(t,e,r){if(s.NumericLogLevels[this.config("level")]<s.NumericLogLevels[t])return;let a;switch(t){case s.LogLevel.info:a=this.logger.info;break;case s.LogLevel.verbose:a=this.logger.verbose;break;case s.LogLevel.debug:a=this.logger.debug;break;case s.LogLevel.error:a=this.logger.error;break;case s.LogLevel.warn:a=this.logger.warn;break;case s.LogLevel.silly:a=this.logger.silly;break;default:throw new n.InternalError("Invalid log level")}a.call(this.logger,this.createLog(t,e,r))}}s.Logging.setFactory((t,e,r)=>new f(t||f.name,e||{},r));class _ extends e.CouchDBPaginator{constructor(t,e,r,a){super(t,e,r,a)}prepare(t){const e=Object.assign({},t);return e.limit&&(this.limit=e.limit),e.limit=this.size,e}async page(t=1,...e){const{ctxArgs:i,ctx:s}=this.adapter.logCtx(e,this.page);if(this.isPreparedStatement())return this.pagePrepared(t,...i);const c=Object.assign({},this.statement);if(!this._recordCount||!this._totalPages){this._totalPages=this._recordCount=0;const t=await this.adapter.raw({...c,limit:void 0},!0,s)||[];if(this._recordCount=t.length,this._recordCount>0){const t=c?.limit||this.size;this._totalPages=Math.ceil(this._recordCount/t)}}if(this.validatePage(t),1!==t){if(!this._bookmark)throw new a.PagingError("No bookmark. Did you start in the first page?");c.bookmark=this._bookmark}const l=await this.adapter.raw(c,!1,s);if(!this.clazz)throw new a.PagingError("No statement target defined");const d=r.Model.pk(this.clazz),u=o.Metadata.get(this.clazz,o.Metadata.key(n.DBKeys.ID,d))?.type,g=c.fields&&c.fields.length?l:l.map(t=>this.adapter.revert(t,this.clazz,a.Sequence.parseValue(u,t[d]),void 0,s)),p=c.sort?.[0]||a.OrderDirection.DSC;return this._bookmark=g[p===a.OrderDirection.ASC?g.length-1:0][d],this._currentPage=t,g}}class x extends n.InternalError{constructor(t){super(t,x.name)}}class b extends n.InternalError{constructor(t){super(t,b.name)}}class C extends n.InternalError{constructor(t){super(t,C.name)}}class S extends n.InternalError{constructor(t){super(t,S.name,500)}}class v extends n.BaseError{constructor(t){super(v.name,t,409)}}async function E(t,e,r,n){try{const e=t.get("identity");n[r]=e.getID()}catch(t){throw new a.UnsupportedError("No User found in context. Please provide a user in the context")}}class A extends e.CouchDBAdapter{getClient(){throw new a.UnsupportedError("Client is not supported in Fabric contracts")}static{this.textDecoder=new TextDecoder("utf8")}static{this.serializer=new w}repository(){return u}Paginator(t,e,r){return new _(this,t,e,r)}async Sequence(t){return new p(t,this)}constructor(t,e){super(t,m,e),this.Context=l}for(t,...e){return super.for(t,...e)}async create(t,e,a,...n){const{ctx:i,log:o}=this.logCtx(n,this.create);o.info("in ADAPTER create with args "+n);const s=r.Model.tableName(t);try{o.info(`adding entry to ${s} table with pk ${e}`);const t=i.stub.createCompositeKey(s,[e+""]);a=await this.putState(t,a,i)}catch(t){throw this.parseError(t)}return a}async read(t,e,...a){const{ctx:n,log:i}=this.logCtx(a,this.read);i.info("in ADAPTER read with args "+a);const o=r.Model.tableName(t);let s;try{const t=n.stub.createCompositeKey(o,[e+""]);s=await this.readState(t,n)}catch(t){throw this.parseError(t)}return s}async update(t,e,a,...n){const{ctx:i,log:o}=this.logCtx(n,this.update),s=r.Model.tableName(t);try{o.verbose(`updating entry to ${s} table with pk ${e}`);const t=i.stub.createCompositeKey(s,[e+""]);a=await this.putState(t,a,i)}catch(t){throw this.parseError(t)}return a}async delete(t,e,...a){const{ctx:n,log:i,ctxArgs:o}=this.logCtx(a,this.delete),s=r.Model.tableName(t);let c;try{const r=n.stub.createCompositeKey(s,[e+""]);c=await this.read(t,e,...o),i.verbose(`deleting entry with pk ${e} from ${s} table`),await this.deleteState(r,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,a,i)=>e.includes(a)?new Proxy(r[a],{async apply(e,r,i){switch(a){case"putState":{const[e,r,a]=i;return await e.putPrivateData(t,r.toString(),a),a}case"deleteState":{const[e,r]=i;return e.deletePrivateData(t,r)}case"readState":{const[e,r]=i;return e.getPrivateData(t,r)}case"queryResult":{const[e,r]=i;return e.getPrivateDataQueryResult(t,r)}case"queryResultPaginated":{const[e,r,a,n]=i,o=await e.getPrivateDataQueryResult(t,r),s=[];let c=0,l=!n,d=null;for(;;){const t=await o.next();if(t.value&&t.value.value.toString()){const e=t.value.key,r=t.value.value.toString("utf8");if(!l){e===n?.toString()&&(l=!0);continue}if(s.push({Key:e,Record:JSON.parse(r)}),d=e,c++,c>=a)return await o.close(),{iterator:s,metadata:{fetchedRecordsCount:s.length,bookmark:d}}}if(t.done)return await o.close(),{iterator:s,metadata:{fetchedRecordsCount:s.length,bookmark:""}}}}default:throw new n.InternalError("Unsupported method override "+a)}}}):Reflect.get(r,a,i)})}async putState(t,e,r){let a;const{log:i}=this.logCtx([r],this.putState);try{a=Buffer.from(A.serializer.serialize(e,!1))}catch(e){throw new n.SerializationError(`Failed to serialize record with id ${t}: ${e}`)}const o=r.get("segregated");return o?await r.stub.putPrivateData(o,t.toString(),a):await r.stub.putState(t.toString(),a),i.silly(`state stored${o?` in ${o} collection`:""} under id ${t}`),e}async readState(t,e){let r;const{log:a}=this.logCtx([e],this.readState);let i;const o=e.get("segregated");if(i=o?(await e.stub.getPrivateData(o,t.toString())).toString():(await e.stub.getState(t.toString())).toString(),!i)throw new n.NotFoundError(`Record with id ${t}${o?` in ${o} collection`:""} not found`);a.silly(`state retrieved from${o?` ${o} collection`:""} under id ${t}`);try{r=A.serializer.deserialize(i.toString())}catch(t){throw new n.SerializationError("Failed to parse record: "+t)}return r}async queryResult(t,e,...r){const{ctx:a}=this.logCtx(r,this.readState);let n;const i=a.get("segregated");return n=i?await a.stub.getPrivateDataQueryResult(i,JSON.stringify(e)):await t.getQueryResult(JSON.stringify(e)),n}async queryResultPaginated(t,e,r=250,a,...n){const{ctx:i}=this.logCtx(n,this.readState);let o;const s=i.get("segregated");return s?(e.selector={...e.selector,_id:a?{$gt:a.toString()}:{$gte:""}},o={iterator:await t.getPrivateDataQueryResult(s,JSON.stringify(e)),metadata:{fetchedRecordsCount:r,bookmark:""}}):o=await t.getQueryResultWithPagination(JSON.stringify(e),r,a?.toString()),o}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 a of t)r=Object.assign({},e(r),e(a));return r}decode(t){return A.textDecoder.decode(t)}async flags(t,e,r,a,...n){const i={stub:a.stub,segregated:!1};return Object.assign(i,a instanceof l?{logger:a.logger,identity:a.identity,correlationId:a.stub.getTxID()}:{identity:a.clientIdentity,logger:new f(this,void 0,a),correlationId:a.stub.getTxID()}),await super.flags(t,e,i,...n)}index(t){return Promise.resolve(void 0)}async resultIterator(t,e,r=!1){const a=[];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")}a.push(e)}n=await e.next()}return t.debug(`Closing iterator after ${a.length} results`),e.close(),a}async raw(t,e=!0,...r){const{log:a,stub:n,ctx:i}=this.logCtx(r,this.raw),{skip:o,limit:s}=t;let c;s||o?(delete t.limit,delete t.skip,a.debug(`Retrieving paginated iterator: limit: ${s}/ skip: ${o}`),c=(await this.queryResultPaginated(n,t,s||250,o?.toString(),i)).iterator):(a.debug("Retrieving iterator"),c=await this.queryResult(n,t,i)),a.debug("Iterator acquired");const l=await this.resultIterator(a,c);return a.debug(`returning ${Array.isArray(l)?l.length:1} results`),l}Statement(){return new g(this)}async createAll(t,e,a,...i){if(e.length!==a.length)throw new n.InternalError("Ids and models must have the same length");const{log:o,ctxArgs:s}=this.logCtx(i,this.createAll),c=r.Model.tableName(t);return o.debug(`Creating ${e.length} entries ${c} table`),Promise.all(e.map((e,r)=>this.create(t,e,a[r],...s)))}async updateAll(t,e,a,...i){if(e.length!==a.length)throw new n.InternalError("Ids and models must have the same length");const{log:o,ctxArgs:s}=this.logCtx(i,this.updateAll),c=r.Model.tableName(t);return o.debug(`Updating ${e.length} entries ${c} table`),Promise.all(e.map((e,r)=>this.update(t,e,a[r],...s)))}prepare(t,...e){const{log:a}=this.logCtx(e,this.prepare),i=r.Model.tableName(t.constructor),o=r.Model.pk(t.constructor),s=r.Model.segregate(t),c=Object.entries(s.model).reduce((e,[a,i])=>{if(void 0===i)return e;const o=r.Model.columnName(t,a);if(this.isReserved(o))throw new n.InternalError(`Property name ${o} is reserved`);return e[o]=i,e},{});return a.silly(`Preparing record for ${i} table with pk ${t[o]}`),{record:c,id:t[o],transient:s.transient}}revert(t,e,a,i,...o){const{log:s}=this.logCtx(o,this.revert),c={};c[r.Model.pk(e)]=a;const l="string"==typeof e?r.Model.build(c,e):new e(c);s.silly(`Rebuilding model ${l.constructor.name} id ${a}`);const d=Object.keys(l).reduce((e,a)=>(e[a]=t[r.Model.columnName(e,a)],e),l);return i&&(s.debug("re-adding transient properties: "+Object.keys(i).join(", ")),Object.entries(i).forEach(([t,e])=>{if(t in d&&void 0!==d[t])throw new n.InternalError(`Transient property ${t} already exists on model ${l.constructor.name}. should be impossible`);d[t]=e})),d}createPrefix(t,a,n,...i){const{ctxArgs:o}=this.logCtx(i,this.createPrefix),s={};return s[e.CouchDBKeys.TABLE]=r.Model.tableName(t),Object.assign(s,n),[t,a,s,...o]}updatePrefix(t,a,n,...i){const{ctxArgs:o}=this.logCtx(i,this.updatePrefix),s={};return s[e.CouchDBKeys.TABLE]=r.Model.tableName(t),Object.assign(s,n),[t,a,s,...o]}createAllPrefix(t,a,i,...o){if(a.length!==i.length)throw new n.InternalError("Ids and models must have the same length");const s=o.pop(),c=a.map((a,n)=>{const o={};return o[e.CouchDBKeys.TABLE]=r.Model.tableName(t),Object.assign(o,i[n]),o});return[t,a,c,s]}updateAllPrefix(t,a,i,...o){if(a.length!==i.length)throw new n.InternalError("Ids and models must have the same length");const s=o.pop(),c=a.map((a,n)=>{const o={};return o[e.CouchDBKeys.TABLE]=r.Model.tableName(t),Object.assign(o,i[n]),o});return[t,a,c,s]}parseError(t,e){return A.parseError(e||t)}logCtx(t,e){return A.logCtx.call(this,t,e)}static logCtx(t,e){if(1>t.length)throw new n.InternalError("No context provided");const r=t.pop();if(!(r instanceof a.Context))throw new n.InternalError("No context provided");if(t.filter(t=>t instanceof a.Context).length>1)throw Error("here");const i=this?r.logger.for(this).for(e):r.logger.clear().for(this).for(e);return{ctx:r,log:e?i.for(e):i,stub:r.stub,identity:r.identity,ctxArgs:[...t,r]}}static parseError(t){const e="string"==typeof t?t:t.message;return e.includes(n.NotFoundError.name)?new n.NotFoundError(t):e.includes(n.ConflictError.name)?new n.ConflictError(t):e.includes(n.BadRequestError.name)?new n.BadRequestError(t):e.includes(a.QueryError.name)?new a.QueryError(t):e.includes(a.PagingError.name)?new a.PagingError(t):e.includes(a.UnsupportedError.name)?new a.UnsupportedError(t):e.includes(a.MigrationError.name)?new a.MigrationError(t):e.includes(a.ObserverError.name)?new a.ObserverError(t):e.includes(a.AuthorizationError.name)?new a.AuthorizationError(t):e.includes(a.ForbiddenError.name)?new a.ForbiddenError(t):e.includes(a.ConnectionError.name)?new a.ConnectionError(t):e.includes(n.SerializationError.name)?new n.SerializationError(t):e.includes("no ledger context")?new S("No context found. this can be caused by debugging: "+e):new n.InternalError(t)}static decoration(){super.decoration(),o.Decoration.flavouredAs(m).for(a.PersistenceKeys.CREATED_BY).define(n.onCreate(E),o.propMetadata(a.PersistenceKeys.CREATED_BY,{})).apply(),o.Decoration.flavouredAs(m).for(a.PersistenceKeys.UPDATED_BY).define(n.onCreateUpdate(E),o.propMetadata(a.PersistenceKeys.UPDATED_BY,{})).apply(),o.Decoration.flavouredAs(m).for(a.PersistenceKeys.COLUMN).extend(i.Property()).apply(),o.Decoration.flavouredAs(m).for(r.ValidationKeys.DATE).extend(()=>(t,e)=>{i.Property(e,"string:date")(t,e)}),o.Decoration.flavouredAs(m).for(a.PersistenceKeys.TABLE).extend(t=>{const e=[];let r="function"==typeof t?o.Metadata.constr(t):o.Metadata.constr(t.constructor);for(;r&&r!==Object&&r.prototype;)e.push(r),r=Object.getPrototypeOf(r);for(;e.length>0;){const t=e.pop();i.Object()(t)}return i.Object()(t)}).apply()}}A.decoration(),a.Adapter.setCurrent(m);class O extends r.JSONSerializer{constructor(){super()}preSerialize(t){const e=Object.assign({},t);let a;try{a=o.Metadata.modelName(t.constructor)}catch(t){a=void 0}e[r.ModelKeys.ANCHOR]=a||t.constructor.name;const n=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 r.Model.relations(t).forEach(t=>{e[t]=n(e[t])}),e}deserialize(t){const e=JSON.parse(t),a=e[r.ModelKeys.ANCHOR];if(!a)throw Error("Could not find class reference in serialized model");return r.Model.build(e,a)}serialize(t){return require("json-stringify-deterministic")(require("sort-keys-recursive")(this.preSerialize(t)))}}i.Object()(Date);class k extends i.Contract{static{this.adapter=new A}static{this.serializer=new O}constructor(t,e){super(t),this.clazz=e,this.initialized=!1,this.repo=a.Repository.forModel(e)}async listBy(t,e,r,...a){const{ctxArgs:n,log:i}=await this.logCtx([...a,t],this.listBy);return i.info(`Running listBy key ${e}, order ${r} and args ${n}`),this.repo.listBy(e,r,...n)}async paginateBy(t,e,r,a={offset:1,limit:10},...n){const{ctxArgs:i,log:o}=await this.logCtx([...n,t],this.paginateBy);return o.info(`Running paginateBy key ${e}, order ${r} with size ${a.limit} and args ${i}`),this.repo.paginateBy(e,r,a,...i)}async findOneBy(t,e,r,...a){const{ctxArgs:n,log:i}=await this.logCtx([...a,t],this.findOneBy);return i.info(`Running findOneBy key ${e}, value: ${r} with args ${n}`),this.repo.findOneBy(e,r,...n)}async statement(t,e,...r){const{ctxArgs:a,log:n}=await this.logCtx([...r,t],this.statement);return n.info(`Running statement ${e} with args ${a}`),this.repo.statement(e,...a)}async create(t,e,...a){const{log:n,ctxArgs:i}=await this.logCtx([...a,t],this.create);n.info("CONTRACT CREATE, "+i),"string"==typeof e&&(e=this.deserialize(e)),n.info("Creating model: "+JSON.stringify(e));const o=this.getTransientData(t);return n.info("Merging transient data..."),e=r.Model.merge(e,o,this.clazz),this.repo.create(e,...i)}async read(t,e,...r){const{log:a,ctxArgs:n}=await this.logCtx([...r,t],this.read);return a.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(t,e,...a){const{log:n,ctxArgs:i}=await this.logCtx([...a,t],this.update);"string"==typeof e&&(e=this.deserialize(e)),n.info("Updating model: "+JSON.stringify(e));const o=this.getTransientData(t);return n.info("Merging transient data..."),e=r.Model.merge(e,o,this.clazz),this.repo.update(e,...i)}async delete(t,e,...r){const{log:a,ctxArgs:n}=await this.logCtx([...r,t],this.delete);return a.info(`deleting entry with pk ${e} `),this.repo.delete(e+"",...n)}async deleteAll(t,e,...r){const{ctxArgs:a}=await this.logCtx([...r,t],this.readAll);return"string"==typeof e&&(e=JSON.parse(e)),this.repo.deleteAll(e,...a)}async readAll(t,e,...r){const{ctxArgs:a}=await this.logCtx([...r,t],this.readAll);return"string"==typeof e&&(e=JSON.parse(e)),this.repo.readAll(e,...a)}async updateAll(t,e,...r){const{log:a,ctxArgs:n}=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))),a.info(`updating ${e.length} entries to the table`),this.repo.updateAll(e,...n)}async query(t,e,r,n=a.OrderDirection.ASC,i,o,...s){const{ctxArgs:c}=await this.logCtx([...s,t],this.query);return this.repo.query(e,r,n,i,o,...c)}async raw(t,e,r,...a){const{ctxArgs:n}=await this.logCtx([...a,t],this.raw);return k.adapter.raw(e,r,...n)}serialize(t){return k.serializer.serialize(t)}deserialize(t){return k.serializer.deserialize(t)}async init(t){const{log:e}=await this.logCtx([t],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],this.healthcheck);return e.info(`Running Healthcheck: ${this.initialized}...`),{healthcheck:this.initialized}}async createAll(t,e,...r){const{log:a,ctxArgs:n}=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))),a.info(`adding ${e.length} entries to the table`),this.repo.createAll(e,...n)}async logCtx(t,e){return k.logCtx.bind(this)(t,e)}static async logCtx(t,e){if(1>t.length)throw new n.InternalError("No context provided");const r=t.pop();if(r instanceof l)return{ctx:r,log:r.logger.clear().for(this).for(e),ctxArgs:[...t,r],stub:r.stub,identity:r.identity};if(!(r instanceof i.Context))throw new n.InternalError("No valid context provided");const a={correlationId:r.stub.getTxID()},o=await k.adapter.context((()=>{if("string"==typeof e)return e;switch(e.name){case n.OperationKeys.CREATE:case n.OperationKeys.READ:case n.OperationKeys.UPDATE:case n.OperationKeys.DELETE:case n.BulkCrudOperationKeys.CREATE_ALL:case n.BulkCrudOperationKeys.READ_ALL:case n.BulkCrudOperationKeys.UPDATE_ALL:case n.BulkCrudOperationKeys.DELETE_ALL:}return e.name})(),a,this.clazz,r),s=this?o.logger.for(this).for(e):o.logger.clear().for(this).for(e);return{ctx:o,log:s,stub:o.stub,identity:o.identity,ctxArgs:[...t,o]}}}class N extends k{constructor(t,e){super(t,e)}async create(t,e){const{log:r,ctx:a}=await this.logCtx([t],this.create);r.info("Creating model: "+e);const n=this.deserialize(e);r.info("Model deserialized: "+JSON.stringify(n));const i=await super.create(a,n),o=this.serialize(i);return r.info("RESULT: "+JSON.stringify(i)),r.info("Retuning: "+o),o}async read(t,e){const{log:r,ctx:a}=await this.logCtx([t],this.read);return r.info("Reading id: "+e),this.serialize(await super.read(a,e))}async update(t,e){const{log:r,ctx:a}=await this.logCtx([t],this.update);return r.info("Updating model: "+e),this.serialize(await super.update(a,e))}async delete(t,e){const{log:r,ctx:a}=await this.logCtx([t],this.delete);return r.info("Deleting id: "+e),this.serialize(await super.delete(a,e))}async deleteAll(t,e){const r=JSON.parse(e),{log:a,ctx:n}=await this.logCtx([t],this.deleteAll);return a.info(`deleting ${r.length} entries from the table`),JSON.stringify((await super.deleteAll(n,r)).map(t=>this.serialize(t)))}async readAll(t,e){const r=JSON.parse(e),{log:a,ctx:n}=await this.logCtx([t],this.readAll);return a.info(`reading ${r.length} entries from the table`),JSON.stringify((await super.readAll(n,r)).map(t=>this.serialize(t)))}async updateAll(t,e){const{log:r,ctx:a}=await this.logCtx([t],this.updateAll),n=JSON.parse(e).map(t=>this.deserialize(t)).map(t=>new this.clazz(t));return r.info(`Updating ${n.length} entries to the table`),JSON.stringify((await super.updateAll(a,n)).map(t=>this.serialize(t)))}async statement(t,e,r){const{ctx:a,log:i}=await this.logCtx([t],this.statement);try{r=JSON.parse(r)}catch(t){throw new n.SerializationError("Invalid args: "+t)}if(!Array.isArray(r))throw new n.SerializationError(`Invalid args: ${JSON.stringify(r)}. must be an array`);return i.info("calling prepared statement "+e),i.info("with args "+r),JSON.stringify(await super.statement(a,e,...r))}async listBy(t,e,r){const{ctx:a,log:n}=await this.logCtx([t],this.listBy);return n.info(`Executing listBy with key ${e} and order ${r}`),JSON.stringify(await super.listBy(a,e,r))}async paginateBy(t,e,r,a,...i){const{ctx:o,log:s}=await this.logCtx([...i,t],this.paginateBy);try{a=JSON.parse(a)}catch(t){throw new n.SerializationError("Failed to deserialize paginateBy reference: "+t)}return s.info(`Executing paginateBy with key ${e} and order ${r}`),JSON.stringify(await super.paginateBy(o,e,r,a,...i))}async findOneBy(t,e,r,...a){const{ctx:n,log:i}=await this.logCtx([...a,t],this.findOneBy);return i.info(`Executing findOneBy with key ${e} and value ${r}`),JSON.stringify(await super.findOneBy(n,e,r,...a))}async query(t,e,r,i,o,s){const{ctx:c,log:l}=await this.logCtx([t],this.query);let d;l.info(`Executing query orderedBy ${r} and order ${i}`);try{d=a.Condition.from(JSON.parse(e))}catch(t){throw new n.SerializationError("Invalid condition: "+t)}return l.info("Condition: "+JSON.stringify(d)),JSON.stringify(await super.query(c,d,r,i,o,s))}async init(t){await super.init(t)}async healthcheck(t){const{log:e,ctx:r}=await this.logCtx([t],this.updateAll);return e.debug(`Running Healthcheck: ${this.initialized}...`),JSON.stringify(await super.healthcheck(r))}async createAll(t,e){const{log:r}=await this.logCtx([t],this.createAll),a=JSON.parse(e).map(t=>this.deserialize(t)).map(t=>new this.clazz(t));r.info(`Adding ${a.length} entries to the table`);const n=await super.createAll(t,a);return JSON.stringify(n.map(t=>this.serialize(t)))}}function T(t,e){const r=t+e;if(t!==r-e||e!==r-t)throw new x(`Addition overflow: ${t} + ${e}`);return r}function z(t,e){const r=t-e;if(t!==r+e||e!==t-r)throw new x(`Subtraction overflow: ${t} - ${e}`);return r}c.__decorate([i.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[i.Context,String]),c.__metadata("design:returntype",Promise)],N.prototype,"create",null),c.__decorate([i.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[i.Context,String]),c.__metadata("design:returntype",Promise)],N.prototype,"read",null),c.__decorate([i.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[i.Context,String]),c.__metadata("design:returntype",Promise)],N.prototype,"update",null),c.__decorate([i.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[i.Context,String]),c.__metadata("design:returntype",Promise)],N.prototype,"delete",null),c.__decorate([i.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[i.Context,String]),c.__metadata("design:returntype",Promise)],N.prototype,"deleteAll",null),c.__decorate([i.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[i.Context,String]),c.__metadata("design:returntype",Promise)],N.prototype,"readAll",null),c.__decorate([i.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[i.Context,String]),c.__metadata("design:returntype",Promise)],N.prototype,"updateAll",null),c.__decorate([i.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[i.Context,String,String]),c.__metadata("design:returntype",Promise)],N.prototype,"statement",null),c.__decorate([i.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[i.Context,String,String]),c.__metadata("design:returntype",Promise)],N.prototype,"listBy",null),c.__decorate([i.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[i.Context,String,String,String,l]),c.__metadata("design:returntype",Promise)],N.prototype,"paginateBy",null),c.__decorate([i.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[i.Context,String,String,String]),c.__metadata("design:returntype",Promise)],N.prototype,"findOneBy",null),c.__decorate([i.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[i.Context]),c.__metadata("design:returntype",Promise)],N.prototype,"init",null),c.__decorate([i.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[i.Context]),c.__metadata("design:returntype",Promise)],N.prototype,"healthcheck",null),c.__decorate([i.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[i.Context,String]),c.__metadata("design:returntype",Promise)],N.prototype,"createAll",null);let $=class extends a.BaseModel{constructor(t){super(t)}};c.__decorate([a.pk({type:"String"}),c.__metadata("design:type",String)],$.prototype,"name",void 0),c.__decorate([a.column(),r.required(),c.__metadata("design:type",String)],$.prototype,"owner",void 0),c.__decorate([a.column(),r.required(),c.__metadata("design:type",String)],$.prototype,"symbol",void 0),c.__decorate([a.column(),r.required(),c.__metadata("design:type",Number)],$.prototype,"decimals",void 0),$=c.__decorate([a.table("erc20_tokens"),r.model(),c.__metadata("design:paramtypes",[Object])],$);let R=class extends a.BaseModel{constructor(t){super(t)}};c.__decorate([a.pk({type:"String"}),c.__metadata("design:type",String)],R.prototype,"id",void 0),c.__decorate([a.column(),r.required(),c.__metadata("design:type",String)],R.prototype,"token",void 0),c.__decorate([a.column(),r.required(),c.__metadata("design:type",Number)],R.prototype,"balance",void 0),c.__decorate([a.column(),c.__metadata("design:type",String)],R.prototype,"captive",void 0),R=c.__decorate([a.table("erc20_wallets"),r.model(),c.__metadata("design:paramtypes",[Object])],R);let B=class extends a.BaseModel{constructor(t){super(t)}};function P(){return function(t,e,r){const i=r.value;return r.value=async function(...t){const r=t[0],o=r.clientIdentity.getID(),s=await this.tokenRepository.select(),c=await s.execute(r);if(0==c.length)throw new n.NotFoundError("No tokens avaialble");if(c.length>1)throw new n.NotFoundError("To many token available : "+c.length);if(c[0].owner!=o)throw new a.AuthorizationError(`User not authorized to run ${e} on the token`);return await i.apply(this,t)},r}}var D;c.__decorate([a.pk({type:"String"}),a.column(),r.required(),c.__metadata("design:type",String)],B.prototype,"owner",void 0),c.__decorate([a.column(),r.required(),c.__metadata("design:type",String)],B.prototype,"spender",void 0),c.__decorate([a.column(),r.required(),c.__metadata("design:type",Number)],B.prototype,"value",void 0),B=c.__decorate([a.table("erc20_allowances"),r.model(),c.__metadata("design:paramtypes",[Object])],B),(t=>{t.TRANSFER="Transfer",t.APPROVAL="Approval"})(D||(D={}));class I extends k{constructor(t){super(t,R),I.adapter=I.adapter||new A,this.walletRepository=u.forModel(R,I.adapter.alias),this.tokenRepository=u.forModel($,I.adapter.alias),this.allowanceRepository=u.forModel(B,I.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(),a=await r.execute(e);if(0==a.length)throw new n.NotFoundError(`The token ${this.getName()} does not exist`);let i=0;return a.forEach(t=>{i+=t.balance}),i}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:a}=await this.logCtx([t],this.Transfer);await this.CheckInitialized(a);const i=a.identity.getID();if(!await this._transfer(i,e,r,a))throw new n.InternalError("Failed to transfer");return!0}async TransferFrom(t,e,r,a){const{ctx:i}=await this.logCtx([t],this.BurnFrom);await this.CheckInitialized(i);const o=i.identity.getID(),s=await this._getAllowance(e,o,i);if(!s||0>s.value)throw new C(`spender ${o} has no allowance from ${e}`);const c=s.value;if(a>c)throw new b("The spender does not have enough allowance to spend.");const l=z(c,a),d=Object.assign({},s,{value:l});if(await this.allowanceRepository.update(d,i),!await this._transfer(e,r,a,i))throw new n.InternalError("Failed to transfer");return!0}async _transfer(t,e,r,i){const o=i.logger;if(t===e)throw new a.AuthorizationError("cannot transfer to and from same client account");if(0>r)throw new b("transfer amount cannot be negative");const s=await this.walletRepository.read(t,i),c=s.balance;if(r>c)throw new b(`client account ${t} has insufficient funds.`);let l,d=!1;try{l=await this.walletRepository.read(e,i)}catch(t){if(!(t instanceof n.BaseError))throw new n.InternalError(t);if(404!==t.code)throw new n.InternalError(t.message);l=new R({id:e,balance:0,token:await this.TokenName(i)}),d=!0}const u=l.balance,g=z(c,r),p=T(u,r),h=Object.assign({},s,{balance:g});await this.walletRepository.update(h,i);const y=Object.assign({},l,{balance:p});d?await this.walletRepository.create(y,i):await this.walletRepository.update(y,i);const m={from:t,to:e,value:r};return this.repo.refresh($,D.TRANSFER,"",m,i).catch(t=>o.error("Failed to notify transfer: "+t)),!0}async Approve(t,e,r){const{ctx:a,ctxArgs:n}=await this.logCtx([t],this.Approve);await this.CheckInitialized(a);const i=a.identity.getID();let o=await this._getAllowance(i,e,a);if((await this.walletRepository.read(i,...n)).balance<r)throw new b(`client account ${i} has insufficient funds.`);o?(o.value=r,await this.allowanceRepository.update(o,...n)):(o=new B({owner:i,spender:e,value:r}),await this.allowanceRepository.create(o,...n));const s={owner:i,spender:e,value:r};return this.repo.refresh($,D.APPROVAL,"",s,a),!0}async Allowance(t,e,r){const{ctx:a}=await this.logCtx([t],this.Allowance);await this.CheckInitialized(a);const n=await this._getAllowance(e,r,a);if(!n)throw new C(`spender ${r} has no allowance from ${e}`);return n.value}async _getAllowance(t,e,r){const n=a.Condition.and(a.Condition.attribute("owner").eq(t),a.Condition.attribute("spender").eq(e)),i=await this.allowanceRepository.select().where(n).execute(r);return i?.[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 a.AuthorizationError("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 v("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 a=r.identity.getID();if(0>=e)throw new n.ValidationError("mint amount must be a positive integer");let i;try{i=await this.walletRepository.read(a,r);const t=T(i.balance,e),n=Object.assign({},i,{balance:t});await this.walletRepository.update(n,r)}catch(i){if(!(i instanceof n.BaseError))throw new n.InternalError(i);if(404!==i.code)throw new n.InternalError(i.message);{const n=new R({id:a,balance:e,token:await this.TokenName(t)});await this.walletRepository.create(n,r)}}const o={from:"0x0",to:a,value:e};this.repo.ObserverHandler().updateObservers($,D.TRANSFER,"",o,r)}async Burn(t,e){const{log:r,ctx:a}=await this.logCtx([t],this.Burn);await this.CheckInitialized(a);const n=a.identity.getID(),i=await this.walletRepository.read(n,a),o=i.balance;if(e>o)throw new b("Minter has insufficient funds.");const s=z(o,e),c=Object.assign({},i,{balance:s});await this.walletRepository.update(c,a),r.info(e+" tokens were burned");const l={from:n,to:"0x0",value:e};this.repo.ObserverHandler().updateObservers($,D.TRANSFER,"",l,a)}async BurnFrom(t,e,r){const{log:a,ctx:n}=await this.logCtx([t],this.BurnFrom);await this.CheckInitialized(n);const i=await this.walletRepository.read(e,n),o=i.balance;if(r>o)throw new b(e+" has insufficient funds.");const s=z(o,r),c=Object.assign({},i,{balance:s});await this.walletRepository.update(c,n),a.info(`${r} tokens were burned from ${e}`);const l={from:e,to:"0x0",value:r};this.repo.ObserverHandler().updateObservers($,D.TRANSFER,"",l,n)}async ClientAccountBalance(t){const{ctx:e}=await this.logCtx([t],this.TokenName);await this.CheckInitialized(e);const r=e.identity.getID(),a=await this.walletRepository.read(r,e);if(!a)throw new b(`The account ${r} does not exist`);return a.balance}async ClientAccountID(t){const{ctx:e}=await this.logCtx([t],this.ClientAccountID);return await this.CheckInitialized(e),e.identity.getID()}}c.__decorate([i.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[i.Context]),c.__metadata("design:returntype",Promise)],I.prototype,"TokenName",null),c.__decorate([i.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[i.Context]),c.__metadata("design:returntype",Promise)],I.prototype,"Symbol",null),c.__decorate([i.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[i.Context]),c.__metadata("design:returntype",Promise)],I.prototype,"Decimals",null),c.__decorate([i.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[i.Context]),c.__metadata("design:returntype",Promise)],I.prototype,"TotalSupply",null),c.__decorate([i.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[i.Context,String]),c.__metadata("design:returntype",Promise)],I.prototype,"BalanceOf",null),c.__decorate([i.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[i.Context,String,Number]),c.__metadata("design:returntype",Promise)],I.prototype,"Transfer",null),c.__decorate([i.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[i.Context,String,String,Number]),c.__metadata("design:returntype",Promise)],I.prototype,"TransferFrom",null),c.__decorate([i.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[i.Context,String,Number]),c.__metadata("design:returntype",Promise)],I.prototype,"Approve",null),c.__decorate([i.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[i.Context,String,String]),c.__metadata("design:returntype",Promise)],I.prototype,"Allowance",null),c.__decorate([i.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[i.Context,$]),c.__metadata("design:returntype",Promise)],I.prototype,"Initialize",null),c.__decorate([i.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[i.Context]),c.__metadata("design:returntype",Promise)],I.prototype,"CheckInitialized",null),c.__decorate([P(),i.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[i.Context,Number]),c.__metadata("design:returntype",Promise)],I.prototype,"Mint",null),c.__decorate([P(),i.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[i.Context,Number]),c.__metadata("design:returntype",Promise)],I.prototype,"Burn",null),c.__decorate([P(),i.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[i.Context,String,Number]),c.__metadata("design:returntype",Promise)],I.prototype,"BurnFrom",null),c.__decorate([i.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[i.Context]),c.__metadata("design:returntype",Promise)],I.prototype,"ClientAccountBalance",null),c.__decorate([i.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[i.Context]),c.__metadata("design:returntype",Promise)],I.prototype,"ClientAccountID",null);const F=[I],M="##VERSION##",q="##PACKAGE##";o.Metadata.registerLibrary(q,M),t.ContractLogger=f,t.FabricContractAdapter=A,t.FabricContractContext=l,t.FabricContractPaginator=_,t.FabricContractRepository=u,t.FabricContractRepositoryObservableHandler=d,t.FabricCrudContract=k,t.FabricStatement=g,t.PACKAGE_NAME=q,t.SerializedCrudContract=N,t.VERSION=M,t.contracts=F,t.createdByOnFabricCreateUpdate=E,t.pkFabricOnCreate=async function(t,e,a,i){if(!e.type||i[a])return;let o;e.name||(e.name=r.Model.sequenceName(i,"pk"));try{o=await this.adapter.Sequence(e)}catch(t){throw new n.InternalError(`Failed to instantiate Sequence ${e.name}: ${t}`)}const s=await o.next(t);Object.defineProperty(i,a,{enumerable:!0,writable:!1,configurable:!0,value:s})}},"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@decaf-ts/for-couchdb"),require("@decaf-ts/decorator-validation"),require("@decaf-ts/core"),require("@decaf-ts/db-decorators"),require("fabric-contract-api"),require("@decaf-ts/decoration"),require("@decaf-ts/logging"),require("tslib")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/for-couchdb","@decaf-ts/decorator-validation","@decaf-ts/core","@decaf-ts/db-decorators","fabric-contract-api","@decaf-ts/decoration","@decaf-ts/logging","tslib"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self)["for-fabric"]={},t.decafTsForCouchdb,t.decafTsDecoratorValidation,t.decafTsCore,t.decafTsDbDecorators,t.fabricContractApi,t.decafTsDecoration,t.decafTsLogging,t.tslib);
1
+ var e,t;e=this,t=function(e,t,r,a,n,i,o,s,c,l,d){"use strict";function u(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach(r=>{if("default"!==r){var a=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,a.get?a:{enumerable:!0,get:()=>e[r]})}}),t.default=e,Object.freeze(t)}var p,g,h=u(l);(e=>{e.PRIVATE="private",e.SHARED="shared",e.FABRIC="fabric.",e.OWNEDBY="owned-by",e.TRANSACTION_ID="transaction-id"})(p||(p={})),(e=>{e.X509="X.509"})(g||(g={}));const y="hlf-fabric";t.Model.prototype.isShared=function(){return t.Model.isShared(this.constructor)},t.Model.prototype.isPrivate=function(){return t.Model.isPrivate(this.constructor)},t.Model.prototype.segregate=function(){return t.Model.segregate(this)},t.Model.segregate=(e=>{if(!t.Model.isTransient(e))return{model:e};const n=r.Metadata.validatableProperties(e.constructor),i=r.Metadata.get(e.constructor,a.DBKeys.TRANSIENT),o=r.Metadata.get(e.constructor,p.PRIVATE),s=r.Metadata.get(e.constructor,p.PRIVATE),c={model:{},transient:{},private:{},shared:{}},l=Object.keys(i),d=Object.keys(o),u=Object.keys(s);for(const t of n){const r=l.includes(t),a=d.includes(t),n=u.includes(t);r?(c.transient=c.transient||{},c.transient[t]=e[t],a&&(c.private=c.private||{},c.private[t]=e[t]),n&&(c.shared=c.shared||{},c.shared[t]=e[t])):(c.model=c.model||{},c.model[t]=e[t])}return c.model=t.Model.build(c.model,e.constructor.name),c}).bind(t.Model),t.Model.tableName=e=>{const a=e instanceof t.Model?e.constructor:e;return r.Metadata.get(a,n.PersistenceKeys.TABLE)||(e instanceof t.Model?e.constructor.name:e.name)},t.Model.isPrivate=(e=>!!r.Metadata.get("function"!=typeof e?e.constructor:e,p.PRIVATE)).bind(t.Model),r.Metadata.isShared=(e=>!!r.Metadata.get("function"!=typeof e?e.constructor:e,p.SHARED)).bind(r.Metadata);class m extends n.Context{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 f extends n.ObserverHandler{constructor(e=[a.OperationKeys.CREATE,a.OperationKeys.UPDATE,a.OperationKeys.DELETE,a.BulkCrudOperationKeys.CREATE_ALL,a.BulkCrudOperationKeys.UPDATE_ALL,a.BulkCrudOperationKeys.DELETE_ALL]){super(),this.supportedEvents=e}async updateObservers(e,t,r,...a){const{log:i,ctx:o}=n.Adapter.logCtx(this.updateObservers,t,!1,...a),{stub:s}=o,[c,l]=a,d="string"==typeof e?e:e.name;if(-1!==this.supportedEvents.indexOf(t)){i.debug(`Emitting ${t} event`);const e=((e,t,r)=>{const a=[e,t];return r&&a.push(r),a.join("_")})(d,t,c);s.setEvent(e,Buffer.from(JSON.stringify({id:r})))}else s.setEvent(t,Buffer.from(JSON.stringify(l)))}}class w extends n.Repository{constructor(e,t,r){super(e,t),this.trackedEvents=r,this._overrides=Object.assign({},super._overrides,{ignoreValidation:!1,ignoreHandlers:!1,allowRawStatements:!0,forcePrepareSimpleQueries:!1,forcePrepareComplexQueries:!1})}async paginateBy(e,r,a={offset:1,limit:10},...i){let{offset:o,bookmark:s,limit:c}=a;if(!o&&!s)throw new n.QueryError("PaginateBy needs a page or a bookmark");const{log:l,ctxArgs:d}=(await this.logCtx(i,n.PreparedStatementKeys.PAGE_BY,!0)).for(this.paginateBy);let u;if(l.verbose(`paginating ${t.Model.tableName(this.class)} with page size ${c}`),s)u=await this.override({forcePrepareComplexQueries:!1,forcePrepareSimpleQueries:!1}).select().where(this.attr(t.Model.pk(this.class)).gt(s)).orderBy([e,r]).paginate(c,...d),o=1;else{if(!o)throw new n.QueryError("PaginateBy needs a page or a bookmark");u=await this.override({forcePrepareComplexQueries:!1,forcePrepareSimpleQueries:!1}).select().orderBy([e,r]).paginate(c,...d)}const p=await u.page(o,s,...d);return u.serialize(p)}async statement(e,...t){const{log:r,ctx:i,ctxArgs:o}=(await this.logCtx(t,n.PersistenceKeys.STATEMENT,!0)).for(this.statement);if(!n.Repository.statements(this,e))throw new n.QueryError("Invalid prepared statement requested "+e);let s;i.logger&&i.logger.info(`Repo statement: ${e} + ${t}`),r.verbose(`Executing prepared statement ${e} with args ${o}`);try{s=await this[e](...o)}catch(t){if(t instanceof a.BaseError)throw t;throw new a.InternalError(`Failed to execute prepared statement ${e} with args ${o}: ${t}`)}return s}ObserverHandler(){return new f}async updateObservers(e,t,r,...a){if(!this.trackedEvents||-1!==this.trackedEvents.indexOf(t))return await super.updateObservers(e,t,r,...a)}}class _ extends i.CouchDBStatement{constructor(e){super(e)}async executionPrefix(e,...t){const r=t.filter(Boolean);if(t.length!==r.length)throw new a.InternalError(`Received an undefined in the paginator for ${e}: ${t}`);return super.executionPrefix(e,...t)}async raw(e,...n){const{ctx:i}=this.logCtx(n,this.raw),o=await this.adapter.raw(e,!0,i),s=t.Model.pk(this.fromSelector),c=r.Metadata.get(this.fromSelector,r.Metadata.key(a.DBKeys.ID,s))?.type;return this.selectSelector?o:o.map(e=>this.processRecord(e,s,c,i))}build(){const e={};e[i.CouchDBKeys.TABLE]={},e[i.CouchDBKeys.TABLE]=t.Model.tableName(this.fromSelector);const r={selector:e};if(this.selectSelector&&(r.fields=this.selectSelector),this.whereCondition){const e=this.parseCondition(n.Condition.and(this.whereCondition,n.Condition.attribute(i.CouchDBKeys.TABLE).eq(r.selector[i.CouchDBKeys.TABLE]))).selector,t=Object.keys(e);if(1===t.length&&-1!==Object.values(i.CouchDBGroupOperator).indexOf(t[0]))switch(t[0]){case i.CouchDBGroupOperator.AND:e[i.CouchDBGroupOperator.AND]=[...Object.values(e[i.CouchDBGroupOperator.AND]).reduce((e,t)=>{const r=Object.keys(t);if(1!==r.length)throw Error("Too many keys in query selector. should be one");const a=r[0];return a===i.CouchDBGroupOperator.AND?e.push(...t[a]):e.push(t),e},[])],r.selector=e;break;case i.CouchDBGroupOperator.OR:{const t={};t[i.CouchDBGroupOperator.AND]=[e,...Object.entries(r.selector).map(([e,t])=>{const r={};return r[e]=t,r})],r.selector=t;break}default:throw Error("This should be impossible")}else Object.entries(e).forEach(([e,t])=>{r.selector[e],r.selector[e]=t})}if(this.orderBySelector){r.sort=r.sort||[],r.selector=r.selector||{};const[e,t]=this.orderBySelector,a={};a[e]=t,r.sort.push(a),r.selector[e]||(r.selector[e]={},r.selector[e][i.CouchDBOperator.BIGGER]=null)}return this.limitSelector&&(r.limit=this.limitSelector),this.offsetSelector&&(r.skip=this.offsetSelector),r}}class b extends n.Sequence{constructor(e,t){super(e,t)}async current(...e){const{ctx:t,log:r}=(await this.logCtx(e,a.OperationKeys.READ,!0)).for(this.current),{name:n,startWith:i}=this.options;try{const e=await this.repo.read(n,t);return this.parse(e.current)}catch(e){if(e instanceof a.NotFoundError){let e;try{r.debug(`Trying to resolve current sequence ${n} value from context`),e=t.get(n),r.debug(`Retrieved cached current value for sequence ${n}: ${e}`)}catch(t){r.info(`No cached value for sequence ${n} in context`),e=i}try{return this.parse(e)}catch(e){throw new a.InternalError(`Failed to parse initial value for sequence ${i}: ${e}`)}}throw new a.InternalError(`Failed to retrieve current value for sequence ${n}: ${e}`)}}async increment(e,t){const r=t.logger.for(this.increment),{type:i,incrementBy:o,name:s}=this.options;if(!s)throw new a.InternalError("Sequence name is required");return r.info("Obtaining sequence lock for sequence "+s),b.lock.execute(async()=>{const c=e||o;if(c%o!==0)throw new a.InternalError("Value to increment does not consider the incrementBy setting: "+o);const l="function"==typeof i&&i?.name?i.name:i,d=await this.current(t);async function u(e){return e instanceof Promise&&(e=await e),r.for(u).info(`Storing new ${s} seq value in cache: ${e.current}`),t.cache.put(s,e.current),e}const p=async e=>{try{return await u(this.repo.update(new n.SequenceModel({id:s,current:e}),t))}catch(i){if(i instanceof a.NotFoundError)return r.debug(`Sequence create ${s} current=${d} next=${e}`),u(this.repo.create(new n.SequenceModel({id:s,current:e}),t));throw i}};if("uuid"===l)for(;;){const e=n.UUID.instance.generate(d);try{const t=await p(e);return r.debug(`Sequence uuid increment ${s} current=${d} next=${e}`),t.current}catch(e){if(e instanceof a.ConflictError)continue;throw e}}const g=(e=>{switch(l){case Number.name:return this.parse(e)+c;case BigInt.name:return this.parse(e)+BigInt(c);case String.name:return this.parse(e);case"serial":return n.Serial.instance.generate(e);default:throw new a.InternalError("Should never happen")}})(d),h=await p(g);return r.debug(`Sequence.increment ${s} current=${d} next=${g}`),h.current},s)}}class x extends t.JSONSerializer{constructor(){super()}deserialize(e,t){return JSON.parse(e)}serialize(e,t=!0){return require("json-stringify-deterministic")(require("sort-keys-recursive")(this.preSerialize(e,t)))}preSerialize(e,a=!0){const n=Object.assign({},e);let i;try{i=r.Metadata.modelName(e.constructor)}catch(e){i=void 0}function o(e){return"object"!=typeof e?e:Array.isArray(e)?e.map(o):this.preSerialize(e)}return a&&(n[t.ModelKeys.ANCHOR]=i||e.constructor.name),t.Model.relations(e).forEach(e=>{n[e]=o.call(this,n[e])}),n}}class S extends i.CouchDBPaginator{constructor(e,t,r,a){super(e,t,r,a)}prepare(e){const t=Object.assign({},e);return t.limit&&(this.limit=t.limit),t.limit=this.size,t}async page(e=1,i,...o){const{ctxArgs:s,ctx:c,log:l}=this.adapter.logCtx([i,...o],this.page);if(this.isPreparedStatement())return await this.pagePrepared(e,...s);const d=Object.assign({},this.statement);if(this._recordCount&&this._totalPages)e=this.validatePage(e),d.skip=(e-1)*this.size;else{this._totalPages=this._recordCount=0;const t=await this.adapter.raw({...d,limit:Number.MAX_VALUE},!0,...s)||[];if(this._recordCount=t.length,this._recordCount>0){const t=d?.limit||this.size;return this._totalPages=Math.ceil(this._recordCount/t),await this.page(e,...s)}}if(1!==e){if(!this._bookmark)throw new n.PagingError("No bookmark. Did you start in the first page?");d.bookmark=this._bookmark}const u=await this.adapter.raw(d,!0,...s),{docs:p,bookmark:g,warning:h}=u;if(h&&l.warn(h),!this.clazz)throw new n.PagingError("No statement target defined");const y=t.Model.pk(this.clazz),m=r.Metadata.get(this.clazz,r.Metadata.key(a.DBKeys.ID,y))?.type,f=d.fields&&d.fields.length?u:u.map(e=>this.adapter.revert(e,this.clazz,n.Sequence.parseValue(m,e[y]),void 0,c));return this._bookmark=g,this._currentPage=e,f}}class C extends a.InternalError{constructor(e){super(e,C.name)}}class E extends a.InternalError{constructor(e){super(e,E.name)}}class A extends a.InternalError{constructor(e){super(e,A.name)}}class v extends a.InternalError{constructor(e){super(e,v.name,500)}}class O extends a.BaseError{constructor(e){super(O.name,e,409)}}async function T(e,t,r,a){try{const t=e.get("identity");a[r]=t.getID()}catch(e){throw new n.UnsupportedError("No User found in context. Please provide a user in the context")}}class k extends i.CouchDBAdapter{getClient(){throw new n.UnsupportedError("Client is not supported in Fabric contracts")}static{this.textDecoder=new TextDecoder("utf8")}static{this.serializer=new x}get Context(){return m}repository(){return w}Paginator(e,t,r){return new S(this,e,t,r)}async Sequence(e){return new b(e,this)}constructor(e,t){super(e,y,t)}for(e,...t){return super.for(e,...t)}async create(e,r,a,...n){const{ctx:i,log:o}=this.logCtx(n,this.create);o.info("in ADAPTER create with args "+n);const s=t.Model.tableName(e);try{o.info(`adding entry to ${s} table with pk ${r}`);const e=i.stub.createCompositeKey(s,[r+""]);a=await this.putState(e,a,i)}catch(e){throw this.parseError(e)}return a}async read(e,r,...a){const{ctx:n,log:i}=this.logCtx(a,this.read);i.info("in ADAPTER read with args "+a);const o=t.Model.tableName(e);let s;try{const e=n.stub.createCompositeKey(o,[r+""]);s=await this.readState(e,n)}catch(e){throw this.parseError(e)}return s}async update(e,r,a,...n){const{ctx:i,log:o}=this.logCtx(n,this.update),s=t.Model.tableName(e);try{o.verbose(`updating entry to ${s} table with pk ${r}`);const e=i.stub.createCompositeKey(s,[r+""]);a=await this.putState(e,a,i)}catch(e){throw this.parseError(e)}return a}async delete(e,r,...a){const{ctx:n,log:i,ctxArgs:o}=this.logCtx(a,this.delete),s=t.Model.tableName(e);let c;try{const t=n.stub.createCompositeKey(s,[r+""]);c=await this.read(e,r,...o),i.verbose(`deleting entry with pk ${r} from ${s} table`),await this.deleteState(t,n)}catch(e){throw this.parseError(e)}return c}async deleteState(e,t){const{ctx:r}=this.logCtx([t],this.deleteState);await r.stub.deleteState(e)}forPrivate(e){const t=[this.putState,this.readState,this.deleteState,this.queryResult,this.queryResultPaginated].map(e=>e.name);return new Proxy(this,{get:(r,n,i)=>t.includes(n)?new Proxy(r[n],{async apply(t,r,i){switch(n){case"putState":{const[t,r,a]=i;return await t.putPrivateData(e,r.toString(),a),a}case"deleteState":{const[t,r]=i;return t.deletePrivateData(e,r)}case"readState":{const[t,r]=i;return t.getPrivateData(e,r)}case"queryResult":{const[t,r]=i;return t.getPrivateDataQueryResult(e,r)}case"queryResultPaginated":{const[t,r,a,n]=i,o=await t.getPrivateDataQueryResult(e,r),s=[];let c=0,l=!n,d=null;for(;;){const e=await o.next();if(e.value&&e.value.value.toString()){const t=e.value.key,r=e.value.value.toString("utf8");if(!l){t===n?.toString()&&(l=!0);continue}if(s.push({Key:t,Record:JSON.parse(r)}),d=t,c++,c>=a)return await o.close(),{iterator:s,metadata:{fetchedRecordsCount:s.length,bookmark:d}}}if(e.done)return await o.close(),{iterator:s,metadata:{fetchedRecordsCount:s.length,bookmark:""}}}}default:throw new a.InternalError("Unsupported method override "+n)}}}):Reflect.get(r,n,i)})}async putState(e,t,r){let n;const{log:i}=this.logCtx([r],this.putState);try{n=Buffer.from(k.serializer.serialize(t,!1))}catch(t){throw new a.SerializationError(`Failed to serialize record with id ${e}: ${t}`)}const o=r.get("segregated");return o?await r.stub.putPrivateData(o,e.toString(),n):await r.stub.putState(e.toString(),n),i.silly(`state stored${o?` in ${o} collection`:""} under id ${e}`),t}async readState(e,t){let r;const{log:n}=this.logCtx([t],this.readState);let i;const o=t.get("segregated");if(i=o?(await t.stub.getPrivateData(o,e.toString())).toString():(await t.stub.getState(e.toString())).toString(),!i)throw new a.NotFoundError(`Record with id ${e}${o?` in ${o} collection`:""} not found`);n.silly(`state retrieved from${o?` ${o} collection`:""} under id ${e}`);try{r=k.serializer.deserialize(i.toString())}catch(e){throw new a.SerializationError("Failed to parse record: "+e)}return r}async queryResult(e,t,...r){const{ctx:a}=this.logCtx(r,this.queryResult);let n;const i=a.get("segregated");return n=i?await a.stub.getPrivateDataQueryResult(i,JSON.stringify(t)):await e.getQueryResult(JSON.stringify(t)),n}async queryResultPaginated(e,t,r=250,a,...n){const{ctx:i}=this.logCtx(n,this.readState);let o;const s=i.get("segregated");return s?(t.selector={...t.selector,_id:a?{$gt:a.toString()}:{$gte:""}},o={iterator:await e.getPrivateDataQueryResult(s,JSON.stringify(t)),metadata:{fetchedRecordsCount:r,bookmark:""}}):o=await e.getQueryResultWithPagination(JSON.stringify(t),r,a?.toString()),o}mergeModels(e){const t=e=>Object.entries(e).reduce((e,[t,r])=>(void 0!==r&&(e[t]=r),e),{});let r=e.pop();for(const a of e)r=Object.assign({},t(r),t(a));return r}decode(e){return k.textDecoder.decode(e)}async flags(e,t,r){let a=Object.assign({segregated:!1},r);return r instanceof m||(r.stub?Object.assign(a,{stub:r.stub,identity:r.clientIdentity,logger:s.Logging.for(e,{logLevel:!1,timestamp:!1,correlationId:r.stub.getTxID()},r),correlationId:r.stub.getTxID()}):a=Object.assign(a,r||{})),await super.flags(e,t,a)}index(e){return Promise.resolve(void 0)}async resultIterator(e,t,r=!1){const a=[];let n=await t.next();for(;!n.done;){if(n.value&&n.value.value.toString()){let t={};if(e.debug(n.value.value.toString("utf8")),r){t.TxId=n.value.txId,t.Timestamp=n.value.timestamp;try{t.Value=JSON.parse(n.value.value.toString("utf8"))}catch(r){e.error(r),t.Value=n.value.value.toString("utf8")}}else try{t=JSON.parse(n.value.value.toString("utf8"))}catch(r){e.error(r),t=n.value.value.toString("utf8")}a.push(t)}n=await t.next()}return e.debug(`Closing iterator after ${a.length} results`),t.close(),a}async raw(e,t=!0,...r){const{log:a,ctx:n}=this.logCtx(r,this.raw),{skip:i,limit:o}=e;let s;o||i?(delete e.limit,delete e.skip,a.debug(`Retrieving paginated iterator: limit: ${o}/ skip: ${i}`),s=(await this.queryResultPaginated(n.stub,e,o||Number.MAX_VALUE,i?.toString(),n)).iterator):(a.debug("Retrieving iterator"),s=await this.queryResult(n.stub,e,n)),a.debug("Iterator acquired");const c=await this.resultIterator(a,s);return a.debug(`returning ${Array.isArray(c)?c.length:1} results`),c}Statement(){return new _(this)}async createAll(e,r,n,...i){if(r.length!==n.length)throw new a.InternalError("Ids and models must have the same length");const{log:o,ctxArgs:s}=this.logCtx(i,this.createAll),c=t.Model.tableName(e);return o.debug(`Creating ${r.length} entries ${c} table`),Promise.all(r.map((t,r)=>this.create(e,t,n[r],...s)))}async updateAll(e,r,n,...i){if(r.length!==n.length)throw new a.InternalError("Ids and models must have the same length");const{log:o,ctxArgs:s}=this.logCtx(i,this.updateAll),c=t.Model.tableName(e);return o.debug(`Updating ${r.length} entries ${c} table`),Promise.all(r.map((t,r)=>this.update(e,t,n[r],...s)))}prepare(e,...r){const{log:n}=this.logCtx(r,this.prepare),i=t.Model.tableName(e.constructor),o=t.Model.pk(e.constructor),s=t.Model.segregate(e),c=Object.entries(s.model).reduce((r,[n,i])=>{if(void 0===i)return r;const o=t.Model.columnName(e,n);if(this.isReserved(o))throw new a.InternalError(`Property name ${o} is reserved`);return r[o]=i,r},{});return n.silly(`Preparing record for ${i} table with pk ${e[o]}`),{record:c,id:e[o],transient:s.transient}}revert(e,r,n,i,...o){const{log:s}=this.logCtx(o,this.revert),c={};c[t.Model.pk(r)]=n;const l="string"==typeof r?t.Model.build(c,r):new r(c);s.silly(`Rebuilding model ${l.constructor.name} id ${n}`);const d=Object.keys(l).reduce((r,a)=>(r[a]=e[t.Model.columnName(r,a)],r),l);return i&&(s.debug("re-adding transient properties: "+Object.keys(i).join(", ")),Object.entries(i).forEach(([e,t])=>{if(e in d&&void 0!==d[e])throw new a.InternalError(`Transient property ${e} already exists on model ${l.constructor.name}. should be impossible`);d[e]=t})),d}createPrefix(e,r,a,...n){const{ctxArgs:o}=this.logCtx(n,this.createPrefix),s={};return s[i.CouchDBKeys.TABLE]=t.Model.tableName(e),Object.assign(s,a),[e,r,s,...o]}updatePrefix(e,r,a,...n){const{ctxArgs:o}=this.logCtx(n,this.updatePrefix),s={};return s[i.CouchDBKeys.TABLE]=t.Model.tableName(e),Object.assign(s,a),[e,r,s,...o]}createAllPrefix(e,r,n,...o){if(r.length!==n.length)throw new a.InternalError("Ids and models must have the same length");const s=o.pop(),c=r.map((r,a)=>{const o={};return o[i.CouchDBKeys.TABLE]=t.Model.tableName(e),Object.assign(o,n[a]),o});return[e,r,c,s]}updateAllPrefix(e,r,n,...o){if(r.length!==n.length)throw new a.InternalError("Ids and models must have the same length");const s=o.pop(),c=r.map((r,a)=>{const o={};return o[i.CouchDBKeys.TABLE]=t.Model.tableName(e),Object.assign(o,n[a]),o});return[e,r,c,s]}parseError(e,t){return k.parseError(t||e)}logCtx(e,t,r=!1,n){return r?super.logCtx.call(this,e,t,r,n).then(e=>{if(!(e.ctx instanceof m))throw new a.InternalError("Invalid context binding");if(!e.ctx.stub)throw new a.InternalError("Missing Stub");if(!e.ctx.identity)throw new a.InternalError("Missing Identity");return Object.assign(e,{stub:e.ctx.stub,identity:e.ctx.identity})}):super.logCtx(e,t,r,n)}static parseError(e){const t="string"==typeof e?e:e.message;return t.includes(a.NotFoundError.name)?new a.NotFoundError(e):t.includes(a.ConflictError.name)?new a.ConflictError(e):t.includes(a.BadRequestError.name)?new a.BadRequestError(e):t.includes(n.QueryError.name)?new n.QueryError(e):t.includes(n.PagingError.name)?new n.PagingError(e):t.includes(n.UnsupportedError.name)?new n.UnsupportedError(e):t.includes(n.MigrationError.name)?new n.MigrationError(e):t.includes(n.ObserverError.name)?new n.ObserverError(e):t.includes(n.AuthorizationError.name)?new n.AuthorizationError(e):t.includes(n.ForbiddenError.name)?new n.ForbiddenError(e):t.includes(n.ConnectionError.name)?new n.ConnectionError(e):t.includes(a.SerializationError.name)?new a.SerializationError(e):t.includes("no ledger context")?new v("No context found. this can be caused by debugging: "+t):new a.InternalError(e)}static decoration(){super.decoration(),r.Decoration.flavouredAs(y).for(n.PersistenceKeys.CREATED_BY).define(a.onCreate(T),r.propMetadata(n.PersistenceKeys.CREATED_BY,{})).apply(),r.Decoration.flavouredAs(y).for(n.PersistenceKeys.UPDATED_BY).define(a.onCreateUpdate(T),r.propMetadata(n.PersistenceKeys.UPDATED_BY,{})).apply(),r.Decoration.flavouredAs(y).for(n.PersistenceKeys.COLUMN).extend(o.Property()).apply(),r.Decoration.flavouredAs(y).for(t.ValidationKeys.DATE).extend(()=>(e,t)=>{o.Property(t,"string:date")(e,t)}),r.Decoration.flavouredAs(y).for(n.PersistenceKeys.TABLE).extend(e=>{const t=[];let a="function"==typeof e?r.Metadata.constr(e):r.Metadata.constr(e.constructor);for(;a&&a!==Object&&a.prototype;)t.push(a),a=Object.getPrototypeOf(a);for(;t.length>0;){const e=t.pop();o.Object()(e)}return o.Object()(e)}).apply()}}k.decoration(),n.Adapter.setCurrent(y);class N extends t.JSONSerializer{constructor(){super()}preSerialize(e){const a=Object.assign({},e);let n;try{n=r.Metadata.modelName(e.constructor)}catch(e){n=void 0}a[t.ModelKeys.ANCHOR]=n||e.constructor.name;const i=function e(t){const r=this;return"object"!=typeof t?t:Array.isArray(t)?t.map(t=>e.call(r,t)):this.preSerialize.call(this,t)}.bind(this);return t.Model.relations(e).forEach(e=>{a[e]=i(a[e])}),a}deserialize(e){const r=JSON.parse(e),a=r[t.ModelKeys.ANCHOR];if(!a)throw Error("Could not find class reference in serialized model");return t.Model.build(r,a)}serialize(e){return require("json-stringify-deterministic")(require("sort-keys-recursive")(this.preSerialize(e)))}}var P;(e=>{e.TRANSFER="Transfer",e.APPROVAL="Approval"})(P||(P={}));let B=class extends t.Model{constructor(e){super(e)}};c.__decorate([r.description("Stores the original timestamp of creation"),n.column(),n.createdAt(),c.__metadata("design:type",Date)],B.prototype,"createdAt",void 0),c.__decorate([r.description("Stores the timestamp of the last update"),n.column(),n.updatedAt(),c.__metadata("design:type",Date)],B.prototype,"updatedAt",void 0),c.__decorate([r.description("Stores the version of the model"),n.column(),a.version(),c.__metadata("design:type",Number)],B.prototype,"version",void 0),B=c.__decorate([r.uses(y),c.__metadata("design:paramtypes",[Object])],B);let R=class extends B{constructor(e){super(e)}};c.__decorate([r.description("Stores the creator"),n.column(),n.createdBy(),c.__metadata("design:type",String)],R.prototype,"createdBy",void 0),c.__decorate([r.description("Stores the user that last updated the model"),n.column(),n.updatedBy(),c.__metadata("design:type",String)],R.prototype,"updatedBy",void 0),R=c.__decorate([r.uses(y),c.__metadata("design:paramtypes",[Object])],R);let I=class extends n.BaseModel{constructor(e){super(e)}};c.__decorate([r.description("Unique identifier of the credentials record"),n.column(),n.pk(),c.__metadata("design:type",String)],I.prototype,"id",void 0),c.__decorate([r.description("PEM-encoded X.509 certificate for the identity"),n.column(),t.required(),c.__metadata("design:type",String)],I.prototype,"certificate",void 0),c.__decorate([r.description("PEM-encoded root or intermediate certificate"),n.column(),t.required(),c.__metadata("design:type",String)],I.prototype,"rootCertificate",void 0),c.__decorate([r.description("PEM-encoded private key"),n.column(),t.required(),c.__metadata("design:type",String)],I.prototype,"privateKey",void 0),I=c.__decorate([t.model(),c.__metadata("design:paramtypes",[Object])],I);let D=class extends n.BaseModel{constructor(e){super(e),this.type=g.X509}};c.__decorate([r.description("Unique identifier of the identity"),n.pk(),c.__metadata("design:type",String)],D.prototype,"id",void 0),c.__decorate([n.oneToOne(I,{update:n.Cascade.CASCADE,delete:n.Cascade.CASCADE}),c.__metadata("design:type",I)],D.prototype,"credentials",void 0),c.__decorate([n.column(),t.required(),n.index(),c.__metadata("design:type",String)],D.prototype,"mspId",void 0),c.__decorate([n.column(),t.required(),c.__metadata("design:type",String)],D.prototype,"type",void 0),D=c.__decorate([t.model(),c.__metadata("design:paramtypes",[Object])],D);const M=new d.Crypto;var z,$;h.cryptoProvider.set(M),(e=>{e.BASE2="01",e.BASE8="01234567",e.BASE11="0123456789a",e.BASE16="0123456789abcdef",e.BASE32="0123456789ABCDEFGHJKMNPQRSTVWXYZ",e.BASE32_Z="ybndrfg8ejkmcpqxot1uwisza345h769",e.BASE36="0123456789abcdefghijklmnopqrstuvwxyz",e.BASE58="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",e.BASE62="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",e.BASE64="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",e.BASE67="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.!~"})(z||(z={})),(e=>{e.HASH="SHA-256",e[e.ITERATIONS=1e3]="ITERATIONS",e[e.KEYLENGTH=48]="KEYLENGTH",e[e.DERIVED_IV_LENGTH=16]="DERIVED_IV_LENGTH",e[e.DERIVED_KEY_LENGTH=32]="DERIVED_KEY_LENGTH",e.ALGORYTHM="AES-GCM",e.KEY_ALGORYTHM="PBKDF2"})($||($={}));class F{constructor(e){if(this.alphabet=e,this.baseMap=new Uint8Array(256),this.alphabet.length>=255)throw Error("Alphabet too long");for(let e=0;e<this.baseMap.length;e++)this.baseMap[e]=255;for(let t=0;t<e.length;t++){const r=e.charAt(t),a=r.charCodeAt(0);if(255!==this.baseMap[a])throw Error(r+" is ambiguous");this.baseMap[a]=t}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(e){if("string"==typeof e?e=Buffer.from(e):ArrayBuffer.isView(e)?e=new Uint8Array(e.buffer,e.byteOffset,e.byteLength):Array.isArray(e)&&(e=Uint8Array.from(e)),0===e.length)return"";let t=0,r=0,a=0;const n=e.length;for(;a!==n&&0===e[a];)a++,t++;const i=(n-a)*this.iFactor+1>>>0,o=new Uint8Array(i);for(;a!==n;){let t=e[a],n=0;for(let e=i-1;(0!==t||r>n)&&-1!==e;e--,n++)t+=256*o[e]>>>0,o[e]=t%this.base>>>0,t=t/this.base>>>0;if(0!==t)throw Error("Non-zero carry");r=n,a++}let s=i-r;for(;s!==i&&0===o[s];)s++;let c=this.leader.repeat(t);for(;i>s;++s)c+=this.alphabet.charAt(o[s]);return c}decodeUnsafe(e){if(0===e.length)return new Uint8Array(0);let t=0,r=0,a=0;for(;e[t]===this.leader;)r++,t++;const n=(e.length-t)*this.factor+1>>>0,i=new Uint8Array(n);for(;e[t];){let r=this.baseMap[e.charCodeAt(t)];if(255===r)return;let o=0;for(let e=n-1;(0!==r||a>o)&&-1!==e;e--,o++)r+=this.base*i[e]>>>0,i[e]=r%256>>>0,r=r/256>>>0;if(0!==r)throw Error("Non-zero carry");a=o,t++}let o=n-a;for(;o!==n&&0===i[o];)o++;const s=new Uint8Array(r+(n-o));let c=r;for(;o!==n;)s[c++]=i[o++];return s}decode(e){const t=this.decodeUnsafe(e);if(t)return t;throw Error("Non-base"+this.base+" character")}}class L{static{this.b58encoder=new F(z.BASE58)}static{this.logger=new s.MiniLogger(L.name)}constructor(){}static fabricIdFromCertificate(e){this.logger.debug(t.stringFormat("Parsing certificate: {0}",e));const r=new h.X509Certificate(e),{subject:a,issuer:n}=r;return this.logger.debug(t.stringFormat("Certificate parsed with subject {0} and issuer {1}",a,n)),`x509::/${a.replaceAll(", ","/")}::/${n.replaceAll(", ","/")}`}static encode(e){return this.b58encoder.encode(e)}static decode(e){const t=this.b58encoder.decode(e);return(new TextDecoder).decode(t)}static stringToArrayBuffer(e){const t=new ArrayBuffer(e.length),r=new Uint8Array(t);for(let t=0,a=e.length;a>t;t++)r[t]=e.charCodeAt(t);return t}static async extractKey(e,t,r){const a=M.subtle,n=t.toString("utf8").replace(RegExp(`-----BEGIN (${e.toUpperCase()} KEY|CERTIFICATE)-----`),"").replaceAll("\n","").replace(RegExp(`-----END (${e.toUpperCase()} KEY|CERTIFICATE)-----`),""),i=Buffer.from(n,"base64").toString("binary"),o=this.stringToArrayBuffer(i);return await a.importKey("pkcs8",o,{name:"ECDSA",namedCurve:"P-256"},!0,r||["sign"])}static async extractPrivateKey(e,t){return this.extractKey("private",e,t)}static async extractPublicKey(e,t){return this.extractKey("public",e,t)}static async sign(e,t){const r=await this.extractPrivateKey(e),a=await M.subtle.sign({name:"ECDSA",hash:"SHA-256"},r,t);return Array.from(new Uint8Array(a)).map(e=>e.toString(16).padStart(2,"0")).join("")}static async verify(e,t,r){const a=new h.X509Certificate(e),n=await a.publicKey.export();return t="string"==typeof t?Buffer.from(t,"hex"):t,r="string"==typeof r?Buffer.from(r):r,M.subtle.verify({name:"ECDSA",hash:"SHA-256"},n,t,r)}static async encrypt(e,t){const r=new h.X509Certificate(e),a=await r.publicKey.export();t="string"==typeof t?Buffer.from(t):t;const n=await this.getSubtleCrypto().encrypt({name:"ECDSA"},a,t);return Array.from(new Uint8Array(n)).map(e=>e.toString(16).padStart(2,"0")).join("")}static getSubtleCrypto(){return s.isBrowser()?globalThis.window.crypto.subtle:M.subtle}static async decrypt(e,t){const r=await this.extractPrivateKey(e);return t="string"==typeof t?Buffer.from(t,"hex"):t,this.getSubtleCrypto().decrypt({name:"ECDSA"},r,t)}static async getMaster(e){const t=new TextEncoder;if(void 0===e){const r=M.randomUUID();e=t.encode(r).buffer}return{key:await this.getSubtleCrypto().importKey("raw",e,$.KEY_ALGORYTHM,!1,["deriveBits"]),iv:e}}static async getDerivationKey(e,t){const r=(new TextEncoder).encode(e),a=await this.getSubtleCrypto().digest("SHA-256",r),n={name:$.KEY_ALGORYTHM,hash:$.HASH,salt:a,iterations:$.ITERATIONS},i=await this.getSubtleCrypto().deriveBits(n,t,8*$.KEYLENGTH);return this.getKey(i)}static async getKey(e){const t=e.slice(0,32),r=e.slice(32);return{key:await this.getSubtleCrypto().importKey("raw",t,{name:$.ALGORYTHM},!1,["encrypt","decrypt"]),iv:r}}static async encryptPin(e,t){const r=(new TextEncoder).encode(e);return await this.getSubtleCrypto().encrypt({name:$.ALGORYTHM,iv:t.iv},t.key,r)}static async decryptPin(e,t){const r=new TextDecoder,a=await this.getSubtleCrypto().decrypt({name:$.ALGORYTHM,iv:t.iv},t.key,e);return r.decode(a)}}function K(){return function(e,t,r){const i=r.value;return r.value=async function(...e){const r=e[0],o=r.clientIdentity.getID(),s=await this.tokenRepository.select(),c=await s.execute(r);if(0==c.length)throw new a.NotFoundError("No tokens avaialble");if(c.length>1)throw new a.NotFoundError("To many token available : "+c.length);if(c[0].owner!=o)throw new n.AuthorizationError(`User not authorized to run ${t} on the token`);return await i.apply(this,e)},r}}function q(e,t){const r=e+t;if(e!==r-t||t!==r-e)throw new C(`Addition overflow: ${e} + ${t}`);return r}function j(e,t){const r=e-t;if(e!==r+t||t!==e-r)throw new C(`Subtraction overflow: ${e} - ${t}`);return r}o.Object()(Date);class U extends o.Contract{static{this.adapter=new k}static{this.serializer=new N}constructor(e,t){super(e),this.clazz=t,this.initialized=!1,this.repo=n.Repository.forModel(t)}async listBy(e,t,r,...a){const{ctxArgs:i,log:o}=(await this.logCtx([...a,e],n.PreparedStatementKeys.LIST_BY,!0)).for(this.listBy);return o.info(`Running listBy key ${t}, order ${r} and args ${i}`),this.repo.listBy(t,r,...i)}async paginateBy(e,t,r,a={offset:1,limit:10},...i){const{ctxArgs:o,log:s}=(await this.logCtx([...i,e],n.PreparedStatementKeys.PAGE_BY,!0)).for(this.paginateBy);return s.info(`Running paginateBy key ${t}, order ${r} with size ${a.limit} and args ${o}`),this.repo.paginateBy(t,r,a,...o)}async findOneBy(e,t,r,...a){const{ctxArgs:i,log:o}=(await this.logCtx([...a,e],n.PreparedStatementKeys.FIND_ONE_BY,!0)).for(this.findOneBy);return o.info(`Running findOneBy key ${t}, value: ${r} with args ${i}`),this.repo.findOneBy(t,r,...i)}async statement(e,t,...r){const{ctxArgs:a,log:i}=(await this.logCtx([...r,e],n.PersistenceKeys.STATEMENT,!0)).for(this.statement);return i.info(`Running statement ${t} with args ${a}`),this.repo.statement(t,...a)}async create(e,r,...n){const{log:i,ctxArgs:o}=(await this.logCtx([...n,e],a.OperationKeys.CREATE,!0)).for(this.create);i.info("CONTRACT CREATE, "+o),"string"==typeof r&&(r=this.deserialize(r)),i.info("Creating model: "+JSON.stringify(r));const s=this.getTransientData(e);return i.info("Merging transient data..."),r=t.Model.merge(r,s,this.clazz),this.repo.create(r,...o)}async read(e,t,...r){const{log:n,ctxArgs:i}=(await this.logCtx([...r,e],a.OperationKeys.READ,!0)).for(this.create);return n.info(`reading entry with pk ${t} `),this.repo.read(t,...i)}getTransientData(e){const t=e.stub.getTransient();let r={};return t.has(this.repo.tableName)&&(r=JSON.parse(t.get(this.repo.tableName)?.toString("utf8"))),r}async update(e,r,...n){const{log:i,ctxArgs:o}=(await this.logCtx([...n,e],a.OperationKeys.UPDATE,!0)).for(this.update);"string"==typeof r&&(r=this.deserialize(r)),i.info("Updating model: "+JSON.stringify(r));const s=this.getTransientData(e);return i.info("Merging transient data..."),r=t.Model.merge(r,s,this.clazz),this.repo.update(r,...o)}async delete(e,t,...r){const{log:n,ctxArgs:i}=(await this.logCtx([...r,e],a.OperationKeys.DELETE,!0)).for(this.delete);return n.info(`deleting entry with pk ${t} `),this.repo.delete(t+"",...i)}async deleteAll(e,t,...r){const{ctxArgs:n}=(await this.logCtx([...r,e],a.BulkCrudOperationKeys.DELETE_ALL,!0)).for(this.deleteAll);return"string"==typeof t&&(t=JSON.parse(t)),this.repo.deleteAll(t,...n)}async readAll(e,t,...r){const{ctxArgs:n}=(await this.logCtx([...r,e],a.BulkCrudOperationKeys.READ_ALL,!0)).for(this.create);return"string"==typeof t&&(t=JSON.parse(t)),this.repo.readAll(t,...n)}async updateAll(e,t,...r){const{log:n,ctxArgs:i}=(await this.logCtx([...r,e],a.BulkCrudOperationKeys.UPDATE_ALL,!0)).for(this.updateAll);return"string"==typeof t&&(t=JSON.parse(t).map(e=>this.deserialize(e)).map(e=>new this.clazz(e))),n.info(`updating ${t.length} entries to the table`),this.repo.updateAll(t,...i)}async query(e,t,r,a=n.OrderDirection.ASC,i,o,...s){const{ctxArgs:c}=(await this.logCtx([...s,e],n.PersistenceKeys.QUERY,!0)).for(this.create);return this.repo.query(t,r,a,i,o,...c)}async raw(e,t,r,...a){const{ctxArgs:n}=(await this.logCtx([...a,e],"raw",!0)).for(this.raw);return U.adapter.raw(t,r,...n)}serialize(e){return U.serializer.serialize(e)}deserialize(e){return U.serializer.deserialize(e)}async init(e){const{log:t,ctxArgs:r}=(await this.logCtx([e],n.PersistenceKeys.INITIALIZATION,!0)).for(this.init);t.info(`Running contract ${this.getName()} initialization...`),this.initialized=!0,t.info("Contract initialization completed.")}async healthcheck(e){const{log:t}=(await this.logCtx([e],"healthcheck",!0)).for(this.healthcheck);return t.info(`Running Healthcheck: ${this.initialized}...`),{healthcheck:this.initialized}}async createAll(e,t,...r){const{log:n,ctxArgs:i}=(await this.logCtx([...r,e],a.BulkCrudOperationKeys.CREATE_ALL,!0)).for(this.createAll);return"string"==typeof t&&(t=JSON.parse(t).map(e=>this.deserialize(e)).map(e=>new this.clazz(e))),n.info(`adding ${t.length} entries to the table`),this.repo.createAll(t,...i)}logCtx(e,t,r=!1){const a=e.pop();if(!a||!a.stub)throw new v("No valid context provided...");const n=U.adapter.logCtx([this.clazz,...e],t,r,a);function i(e){return e.ctxArgs.shift(),e}return n instanceof Promise?n.then(i):i(n)}}class J extends U{constructor(e,t){super(e,t)}async create(e,t){return this.serialize(await super.create(e,t))}async read(e,t){return this.serialize(await super.read(e,t))}async update(e,t){return this.serialize(await super.update(e,t))}async delete(e,t){return this.serialize(await super.delete(e,t))}async deleteAll(e,t){const r=JSON.parse(t);return JSON.stringify((await super.deleteAll(e,r)).map(e=>this.serialize(e)))}async readAll(e,t){const r=JSON.parse(t);return JSON.stringify((await super.readAll(e,r)).map(e=>this.serialize(e)))}async updateAll(e,t){const r=JSON.parse(t).map(e=>this.deserialize(e)).map(e=>new this.clazz(e));return JSON.stringify((await super.updateAll(e,r)).map(e=>this.serialize(e)))}async statement(e,t,r){try{r=JSON.parse(r)}catch(e){throw new a.SerializationError("Invalid args: "+e)}if(!Array.isArray(r))throw new a.SerializationError(`Invalid args: ${JSON.stringify(r)}. must be an array`);return JSON.stringify(await super.statement(e,t,...r))}async listBy(e,t,r){return JSON.stringify(await super.listBy(e,t,r))}async paginateBy(e,t,r,n){try{n=JSON.parse(n)}catch(e){throw new a.SerializationError("Failed to deserialize paginateBy reference: "+e)}return JSON.stringify(await super.paginateBy(e,t,r,n))}async findOneBy(e,t,r){return JSON.stringify(await super.findOneBy(e,t,r))}async query(e,t,r,i,o,s){let c;try{c=n.Condition.from(JSON.parse(t))}catch(e){throw new a.SerializationError("Invalid condition: "+e)}return JSON.stringify(await super.query(e,c,r,i,o,s))}async init(e){await super.init(e)}async healthcheck(e){return JSON.stringify(await super.healthcheck(e))}async createAll(e,t){const r=JSON.parse(t).map(e=>this.deserialize(e)).map(e=>new this.clazz(e)),a=await super.createAll(e,r);return JSON.stringify(a.map(e=>this.serialize(e)))}}c.__decorate([o.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[o.Context,String]),c.__metadata("design:returntype",Promise)],J.prototype,"create",null),c.__decorate([o.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[o.Context,String]),c.__metadata("design:returntype",Promise)],J.prototype,"read",null),c.__decorate([o.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[o.Context,String]),c.__metadata("design:returntype",Promise)],J.prototype,"update",null),c.__decorate([o.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[o.Context,String]),c.__metadata("design:returntype",Promise)],J.prototype,"delete",null),c.__decorate([o.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[o.Context,String]),c.__metadata("design:returntype",Promise)],J.prototype,"deleteAll",null),c.__decorate([o.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[o.Context,String]),c.__metadata("design:returntype",Promise)],J.prototype,"readAll",null),c.__decorate([o.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[o.Context,String]),c.__metadata("design:returntype",Promise)],J.prototype,"updateAll",null),c.__decorate([o.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[o.Context,String,String]),c.__metadata("design:returntype",Promise)],J.prototype,"statement",null),c.__decorate([o.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[o.Context,String,String]),c.__metadata("design:returntype",Promise)],J.prototype,"listBy",null),c.__decorate([o.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[o.Context,String,String,String]),c.__metadata("design:returntype",Promise)],J.prototype,"paginateBy",null),c.__decorate([o.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[o.Context,String,String]),c.__metadata("design:returntype",Promise)],J.prototype,"findOneBy",null),c.__decorate([o.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[o.Context]),c.__metadata("design:returntype",Promise)],J.prototype,"init",null),c.__decorate([o.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[o.Context]),c.__metadata("design:returntype",Promise)],J.prototype,"healthcheck",null),c.__decorate([o.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[o.Context,String]),c.__metadata("design:returntype",Promise)],J.prototype,"createAll",null);let H=class extends n.BaseModel{constructor(e){super(e)}};c.__decorate([n.pk({type:String}),c.__metadata("design:type",String)],H.prototype,"name",void 0),c.__decorate([n.column(),t.required(),c.__metadata("design:type",String)],H.prototype,"owner",void 0),c.__decorate([n.column(),t.required(),c.__metadata("design:type",String)],H.prototype,"symbol",void 0),c.__decorate([n.column(),t.required(),c.__metadata("design:type",Number)],H.prototype,"decimals",void 0),H=c.__decorate([n.table("erc20_tokens"),t.model(),c.__metadata("design:paramtypes",[Object])],H);let G=class extends n.BaseModel{constructor(e){super(e)}};c.__decorate([n.pk({type:String}),c.__metadata("design:type",String)],G.prototype,"id",void 0),c.__decorate([n.column(),t.required(),c.__metadata("design:type",String)],G.prototype,"token",void 0),c.__decorate([n.column(),t.required(),c.__metadata("design:type",Number)],G.prototype,"balance",void 0),c.__decorate([n.column(),c.__metadata("design:type",String)],G.prototype,"captive",void 0),G=c.__decorate([n.table("erc20_wallets"),t.model(),c.__metadata("design:paramtypes",[Object])],G);let Y=class extends n.BaseModel{constructor(e){super(e)}};c.__decorate([n.pk({type:String}),n.column(),t.required(),c.__metadata("design:type",String)],Y.prototype,"owner",void 0),c.__decorate([n.column(),t.required(),c.__metadata("design:type",String)],Y.prototype,"spender",void 0),c.__decorate([n.column(),t.required(),c.__metadata("design:type",Number)],Y.prototype,"value",void 0),Y=c.__decorate([n.table("erc20_allowances"),t.model(),c.__metadata("design:paramtypes",[Object])],Y);class V extends U{constructor(e){super(e,G),V.adapter=V.adapter||new k,this.walletRepository=w.forModel(G,V.adapter.alias),this.tokenRepository=w.forModel(H,V.adapter.alias),this.allowanceRepository=w.forModel(Y,V.adapter.alias)}async TokenName(e){const{ctx:t}=await this.logCtx([e],this.TokenName);await this.CheckInitialized(t);const r=this.tokenRepository.select();return(await r.execute(t))[0].name}async Symbol(e){const{ctx:t}=await this.logCtx([e],this.TokenName);await this.CheckInitialized(t);const r=this.tokenRepository.select();return(await r.execute(t))[0].symbol}async Decimals(e){const{ctx:t}=await this.logCtx([e],this.TokenName);await this.CheckInitialized(t);const r=this.tokenRepository.select();return(await r.execute(t))[0].decimals}async TotalSupply(e){const{ctx:t}=await this.logCtx([e],this.TokenName);await this.CheckInitialized(t);const r=this.walletRepository.select(),n=await r.execute(t);if(0==n.length)throw new a.NotFoundError(`The token ${this.getName()} does not exist`);let i=0;return n.forEach(e=>{i+=e.balance}),i}async BalanceOf(e,t){const{ctx:r}=await this.logCtx([e],this.TokenName);return await this.CheckInitialized(r),(await this.walletRepository.read(t,r)).balance}async Transfer(e,t,r){const{ctx:n}=await this.logCtx([e],this.Transfer);await this.CheckInitialized(n);const i=n.identity.getID();if(!await this._transfer(i,t,r,n))throw new a.InternalError("Failed to transfer");return!0}async TransferFrom(e,t,r,n){const{ctx:i}=await this.logCtx([e],this.BurnFrom);await this.CheckInitialized(i);const o=i.identity.getID(),s=await this._getAllowance(t,o,i);if(!s||0>s.value)throw new A(`spender ${o} has no allowance from ${t}`);const c=s.value;if(n>c)throw new E("The spender does not have enough allowance to spend.");const l=j(c,n),d=Object.assign({},s,{value:l});if(await this.allowanceRepository.update(d,i),!await this._transfer(t,r,n,i))throw new a.InternalError("Failed to transfer");return!0}async _transfer(e,t,r,i){const o=i.logger;if(e===t)throw new n.AuthorizationError("cannot transfer to and from same client account");if(0>r)throw new E("transfer amount cannot be negative");const s=await this.walletRepository.read(e,i),c=s.balance;if(r>c)throw new E(`client account ${e} has insufficient funds.`);let l,d=!1;try{l=await this.walletRepository.read(t,i)}catch(e){if(!(e instanceof a.BaseError))throw new a.InternalError(e);if(404!==e.code)throw new a.InternalError(e.message);l=new G({id:t,balance:0,token:await this.TokenName(i)}),d=!0}const u=l.balance,p=j(c,r),g=q(u,r),h=Object.assign({},s,{balance:p});await this.walletRepository.update(h,i);const y=Object.assign({},l,{balance:g});d?await this.walletRepository.create(y,i):await this.walletRepository.update(y,i);const m={from:e,to:t,value:r};return this.repo.refresh(H,P.TRANSFER,"",m,i).catch(e=>o.error("Failed to notify transfer: "+e)),!0}async Approve(e,t,r){const{ctx:a,ctxArgs:n}=await this.logCtx([e],this.Approve);await this.CheckInitialized(a);const i=a.identity.getID();let o=await this._getAllowance(i,t,a);if((await this.walletRepository.read(i,...n)).balance<r)throw new E(`client account ${i} has insufficient funds.`);o?(o.value=r,await this.allowanceRepository.update(o,...n)):(o=new Y({owner:i,spender:t,value:r}),await this.allowanceRepository.create(o,...n));const s={owner:i,spender:t,value:r};return this.repo.refresh(H,P.APPROVAL,"",s,a),!0}async Allowance(e,t,r){const{ctx:a}=await this.logCtx([e],this.Allowance);await this.CheckInitialized(a);const n=await this._getAllowance(t,r,a);if(!n)throw new A(`spender ${r} has no allowance from ${t}`);return n.value}async _getAllowance(e,t,r){const a=n.Condition.and(n.Condition.attribute("owner").eq(e),n.Condition.attribute("spender").eq(t)),i=await this.allowanceRepository.select().where(a).execute(r);return i?.[0]}async Initialize(e,t){const{ctx:r}=await this.logCtx([e],this.Initialize);if((await this.tokenRepository.select().execute(r)).length>0)throw new n.AuthorizationError("contract options are already set, client is not authorized to change them");return t.owner=r.identity.getID(),await this.tokenRepository.create(t,r),!0}async CheckInitialized(e){const{ctx:t}=await this.logCtx([e],this.CheckInitialized);if(0==(await this.tokenRepository.select().execute(t)).length)throw new O("contract options need to be set before calling any function, call Initialize() to initialize contract")}async Mint(e,t){const{ctx:r}=await this.logCtx([e],this.Mint);await this.CheckInitialized(r);const n=r.identity.getID();if(0>=t)throw new a.ValidationError("mint amount must be a positive integer");let i;try{i=await this.walletRepository.read(n,r);const e=q(i.balance,t),a=Object.assign({},i,{balance:e});await this.walletRepository.update(a,r)}catch(i){if(!(i instanceof a.BaseError))throw new a.InternalError(i);if(404!==i.code)throw new a.InternalError(i.message);{const a=new G({id:n,balance:t,token:await this.TokenName(e)});await this.walletRepository.create(a,r)}}const o={from:"0x0",to:n,value:t};this.repo.ObserverHandler().updateObservers(H,P.TRANSFER,"",o,r)}async Burn(e,t){const{log:r,ctx:a}=await this.logCtx([e],this.Burn);await this.CheckInitialized(a);const n=a.identity.getID(),i=await this.walletRepository.read(n,a),o=i.balance;if(t>o)throw new E("Minter has insufficient funds.");const s=j(o,t),c=Object.assign({},i,{balance:s});await this.walletRepository.update(c,a),r.info(t+" tokens were burned");const l={from:n,to:"0x0",value:t};this.repo.ObserverHandler().updateObservers(H,P.TRANSFER,"",l,a)}async BurnFrom(e,t,r){const{log:a,ctx:n}=await this.logCtx([e],this.BurnFrom);await this.CheckInitialized(n);const i=await this.walletRepository.read(t,n),o=i.balance;if(r>o)throw new E(t+" has insufficient funds.");const s=j(o,r),c=Object.assign({},i,{balance:s});await this.walletRepository.update(c,n),a.info(`${r} tokens were burned from ${t}`);const l={from:t,to:"0x0",value:r};this.repo.ObserverHandler().updateObservers(H,P.TRANSFER,"",l,n)}async ClientAccountBalance(e){const{ctx:t}=await this.logCtx([e],this.TokenName);await this.CheckInitialized(t);const r=t.identity.getID(),a=await this.walletRepository.read(r,t);if(!a)throw new E(`The account ${r} does not exist`);return a.balance}async ClientAccountID(e){const{ctx:t}=await this.logCtx([e],this.ClientAccountID);return await this.CheckInitialized(t),t.identity.getID()}}c.__decorate([o.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[o.Context]),c.__metadata("design:returntype",Promise)],V.prototype,"TokenName",null),c.__decorate([o.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[o.Context]),c.__metadata("design:returntype",Promise)],V.prototype,"Symbol",null),c.__decorate([o.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[o.Context]),c.__metadata("design:returntype",Promise)],V.prototype,"Decimals",null),c.__decorate([o.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[o.Context]),c.__metadata("design:returntype",Promise)],V.prototype,"TotalSupply",null),c.__decorate([o.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[o.Context,String]),c.__metadata("design:returntype",Promise)],V.prototype,"BalanceOf",null),c.__decorate([o.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[o.Context,String,Number]),c.__metadata("design:returntype",Promise)],V.prototype,"Transfer",null),c.__decorate([o.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[o.Context,String,String,Number]),c.__metadata("design:returntype",Promise)],V.prototype,"TransferFrom",null),c.__decorate([o.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[o.Context,String,Number]),c.__metadata("design:returntype",Promise)],V.prototype,"Approve",null),c.__decorate([o.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[o.Context,String,String]),c.__metadata("design:returntype",Promise)],V.prototype,"Allowance",null),c.__decorate([o.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[o.Context,H]),c.__metadata("design:returntype",Promise)],V.prototype,"Initialize",null),c.__decorate([o.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[o.Context]),c.__metadata("design:returntype",Promise)],V.prototype,"CheckInitialized",null),c.__decorate([K(),o.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[o.Context,Number]),c.__metadata("design:returntype",Promise)],V.prototype,"Mint",null),c.__decorate([K(),o.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[o.Context,Number]),c.__metadata("design:returntype",Promise)],V.prototype,"Burn",null),c.__decorate([K(),o.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[o.Context,String,Number]),c.__metadata("design:returntype",Promise)],V.prototype,"BurnFrom",null),c.__decorate([o.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[o.Context]),c.__metadata("design:returntype",Promise)],V.prototype,"ClientAccountBalance",null),c.__decorate([o.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[o.Context]),c.__metadata("design:returntype",Promise)],V.prototype,"ClientAccountID",null);const Q=[V];class X extends s.MiniLogger{constructor(e,t,r){super(e,t),r?(this.logger=r.logging.getLogger(e),r.logging.setLevel(t?.level||s.Logging.getConfig().level)):this.logger=new s.MiniLogger(e,t)}log(e,t,r){if(s.NumericLogLevels[this.config("level")]<s.NumericLogLevels[e])return;let n;switch(e){case s.LogLevel.benchmark:n=this.logger.verbose;break;case s.LogLevel.info:n=this.logger.info;break;case s.LogLevel.verbose:n=this.logger.verbose;break;case s.LogLevel.debug:n=this.logger.debug;break;case s.LogLevel.error:n=this.logger.error;break;case s.LogLevel.trace:n=this.logger.trace;break;case s.LogLevel.warn:n=this.logger.warn;break;case s.LogLevel.silly:n=this.logger.silly;break;default:throw new a.InternalError("Invalid log level")}n.call(this.logger,this.createLog(e,t,r))}}s.Logging.setFactory((e,t,r)=>new X(e||X.name,t||{},r));const W="##VERSION##",Z="##PACKAGE##";r.Metadata.registerLibrary(Z,W),e.ContractLogger=X,e.FabricContractAdapter=k,e.FabricContractContext=m,e.FabricContractPaginator=S,e.FabricContractRepository=w,e.FabricContractRepositoryObservableHandler=f,e.FabricCrudContract=U,e.FabricStatement=_,e.PACKAGE_NAME=Z,e.SerializedCrudContract=J,e.VERSION=W,e.contracts=Q,e.createdByOnFabricCreateUpdate=T,e.pkFabricOnCreate=async function(e,r,n,i){if(!r.type||i[n])return;let o;r.name||(r.name=t.Model.sequenceName(i,"pk"));try{o=await this.adapter.Sequence(r)}catch(e){throw new a.InternalError(`Failed to instantiate Sequence ${r.name}: ${e}`)}const s=await o.next(e);Object.defineProperty(i,n,{enumerable:!0,writable:!1,configurable:!0,value:s})}},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@decaf-ts/decorator-validation"),require("@decaf-ts/decoration"),require("@decaf-ts/db-decorators"),require("@decaf-ts/core"),require("@decaf-ts/for-couchdb"),require("fabric-contract-api"),require("@decaf-ts/logging"),require("tslib"),require("@peculiar/x509"),require("@peculiar/webcrypto")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/decorator-validation","@decaf-ts/decoration","@decaf-ts/db-decorators","@decaf-ts/core","@decaf-ts/for-couchdb","fabric-contract-api","@decaf-ts/logging","tslib","@peculiar/x509","@peculiar/webcrypto"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["for-fabric"]={},e.decafTsDecoratorValidation,e.decafTsDecoration,e.decafTsDbDecorators,e.decafTsCore,e.decafTsForCouchdb,e.fabricContractApi,e.decafTsLogging,e.tslib,e.peculiarX509,e.peculiarWebcrypto);
2
2
  //# sourceMappingURL=for-fabric.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"for-fabric.cjs","sources":["../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/constants.ts","../src/shared/SimpleDeterministicSerializer.ts","../src/contracts/logging.ts","../src/contracts/FabricContractPaginator.ts","../src/shared/errors.ts","../src/contracts/ContractAdapter.ts","../src/shared/DeterministicSerializer.ts","../src/contracts/crud/crud-contract.ts","../src/contracts/crud/serialized-crud-contract.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/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],"names":["FabricContractContext","Context","constructor","super","stub","this","get","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","name","indexOf","debug","eventName","params","push","join","generateFabricEventName","setEvent","Buffer","from","JSON","stringify","FabricContractRepository","Repository","adapter","trackedEvents","_overrides","Object","assign","ignoreValidation","ignoreHandlers","allowRawStatements","forcePrepareSimpleQueries","forcePrepareComplexQueries","paginateBy","key","order","ref","offset","limit","bookmark","QueryError","contextArgs","PreparedStatementKeys","PAGE_BY","class","ctxArgs","paginator","verbose","Model","tableName","override","select","where","attr","pk","gt","orderBy","paginate","paged","page","serialize","statement","statements","PersistenceKeys","STATEMENT","context","logger","info","result","e","BaseError","InternalError","FabricStatement","CouchDBStatement","raw","rawInput","results","pkAttr","fromSelector","type","Metadata","DBKeys","ID","selectSelector","map","r","processRecord","build","selectors","CouchDBKeys","TABLE","query","selector","fields","whereCondition","condition","parseCondition","Condition","and","attribute","eq","selectorKeys","keys","length","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","SequenceModel","startWith","sequence","repo","read","parse","for","NotFoundError","cachedCurrent","increment","count","incrementBy","lock","execute","async","toIncrementBy","typeName","currentValue","returnAndCache","res","Promise","cache","put","performUpsert","next","update","create","UUID","instance","generate","ConflictError","base","Number","BigInt","String","Serial","incrementSerial","seq","FabricModelKeys","IdentityType","FabricFlavour","SimpleDeterministicSerializer","JSONSerializer","deserialize","str","model","putAnchor","require","sortKeysRecursive","preSerialize","toSerialize","metadata","modelName","error","undefined","obj","Array","isArray","ModelKeys","ANCHOR","relations","call","ContractLogger","MiniLogger","conf","logging","getLogger","level","msg","stack","NumericLogLevels","config","method","LogLevel","warn","silly","createLog","Logging","setFactory","object","FabricContractPaginator","CouchDBPaginator","size","prepare","rawStatement","isPreparedStatement","pagePrepared","_recordCount","_totalPages","Math","ceil","validatePage","_bookmark","PagingError","docs","d","revert","parseValue","direction","OrderDirection","DSC","ASC","_currentPage","OverflowError","BalanceError","AllowanceError","MissingContextError","NotInitializedError","createdByOnFabricCreateUpdate","data","user","getID","UnsupportedError","FabricContractAdapter","CouchDBAdapter","getClient","textDecoder","TextDecoder","serializer","repository","Paginator","scope","alias","composedKey","createCompositeKey","putState","parseError","readState","delete","deleteState","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","fetchedRecordsCount","done","Reflect","SerializationError","getState","getQueryResult","_id","$gt","$gte","getQueryResultWithPagination","mergeModels","extract","finalModel","pop","decode","buffer","flags","operation","baseFlags","segregated","correlationId","getTxID","clientIdentity","index","models","resolve","resultIterator","isHistory","allResults","jsonRes","TxId","txId","Timestamp","Value","err","docsOnly","Statement","createAll","tableLabel","all","i","updateAll","split","segregate","mappedProp","columnName","isReserved","record","transient","ob","m","createPrefix","updatePrefix","createAllPrefix","ids","records","updateAllPrefix","reason","filter","a","clear","message","BadRequestError","MigrationError","ObserverError","AuthorizationError","ForbiddenError","ConnectionError","decoration","Decoration","flavouredAs","CREATED_BY","define","onCreate","propMetadata","UPDATED_BY","onCreateUpdate","COLUMN","extend","FabricProperty","Property","ValidationKeys","DATE","chain","constr","prototype","getPrototypeOf","FabricObject","setCurrent","DeterministicSerializer","self","o","bind","deserialization","className","Date","FabricCrudContract","Contract","initialized","forModel","listBy","findOneBy","getTransientData","merge","transientMap","getTransient","has","deleteAll","readAll","init","getName","healthcheck","Ctx","overrides","READ_ALL","getOp","SerializedCrudContract","serialized","parsedKeys","modelList","cond","add","b","c","sub","__decorate","Transaction","__metadata","ERC20Token","BaseModel","column","required","ERC20Wallet","Allowance","Owner","propertyKey","descriptor","originalMethod","acountId","tokens","ERC20Events","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","contracts","VERSION","PACKAGE_NAME","registerLibrary","sequenceName","defineProperty","enumerable","writable","configurable"],"mappings":"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"}
1
+ {"version":3,"file":"for-fabric.cjs","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/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","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","Property","ValidationKeys","DATE","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","sequenceName","defineProperty","enumerable","writable","configurable"],"mappings":"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"}