#0
nonstandard
0.00004000 BSV
Q!qùBÑÞzDrò~¸é0Ç
3"ïQ>¦¾FL?ïdEãQ®M{"__cls":"class PositionSC {\r\n constructor(owner, numberOfShares = 0, dealId = '', facilityId = '', fundId = '') {\r\n this._owners = [owner];\r\n this.numberOfShares = numberOfShares;\r\n this.dealId = dealId\r\n this.facilityId = facilityId;\r\n this.fundId = fundId;\r\n }\r\n\r\n split(newNumberOfShares) {\r\n if (newNumberOfShares === this.numberOfShares) {\r\n return this;\r\n }\r\n if (newNumberOfShares < this.numberOfShares) {\r\n this.numberOfShares -= newNumberOfShares;\r\n return new PositionSC(this._owners[0], newNumberOfShares, this.dealId, this.facilityId, this.fundId);\r\n }\r\n throw new Error(`Cannot split current transaction`);\r\n }\r\n\r\n merge(...positions) {\r\n try {\r\n if (positions.length === 0) return this;\r\n let sendNumberOfShares = this.numberOfShares;\r\n this.numberOfShares = 0;\r\n for (let i = 0; i < positions.length; i += 1) {\r\n if (positions[i].dealId !== this.dealId || positions[i].facilityId !== this.facilityId || positions[i].fundId !== this.fundId) {\r\n throw new Error(`Unable to merge, positions don't originate from the same facility or don't belong to the same fund`);\r\n }\r\n sendNumberOfShares += positions[i].numberOfShares;\r\n positions[i].numberOfShares = 0;\r\n }\r\n return new PositionSC(this._owners[0], sendNumberOfShares, this.dealId, this.facilityId, this.fundId);\r\n } catch (err) {\r\n throw new Error(`Unable to merge positions`);\r\n }\r\n }\r\n\r\n send(to, fundId, numberOfShares) {\r\n if (this.numberOfShares < numberOfShares) throw new Error(`Insufficient funds`);\r\n this.numberOfShares = this.numberOfShares - numberOfShares;\r\n return new PositionSC(to, numberOfShares, this.dealId, this.facilityId, fundId);\r\n }\r\n}","__index":{"obj":0},"__func":"constructor","__args":["0271f99a84428bd1de7a4472f27eb8e930c7853322ef513ea6be464c3fef6445e3",10000,"48c91031e068a0d028270b683e0dcfd9809f15a9c84e02d4cd7a3df6e52102e7:0","c8667750554d0a1aed34391795d6e3d95de1b4f1fab9742c4f988865b40c6078:0","2b3ea11aeb8a82d66de9468c03b2ceb2f8b633b4b1b5ea698ffeddf608cc71cc:0"]}u
https://whatsonchain.com/tx/aa635efe850d4727bab6af9e0935e98a8bd3f882e959778688ca246b153aded0