#0
nonstandard
0.00004000 BSV
Q!Ũvݸu*sQ
^¼B£ »´]<ÿú"¬'IWQ®M{"__cls":"class PositionSC {\n constructor(owner, numberOfShares = 0, dealId = '', facilityId = '', fundId = '') {\n this._owners = [owner];\n this.numberOfShares = numberOfShares;\n this.dealId = dealId\n this.facilityId = facilityId;\n this.fundId = fundId;\n }\n\n split(newNumberOfShares) {\n if (newNumberOfShares === this.numberOfShares) {\n return this;\n }\n if (newNumberOfShares < this.numberOfShares) {\n this.numberOfShares -= newNumberOfShares;\n return new PositionSC(this._owners[0], newNumberOfShares, this.dealId, this.facilityId, this.fundId);\n }\n throw new Error(`Cannot split current transaction`);\n }\n\n merge(...positions) {\n try {\n if (positions.length === 0) return this;\n let sendNumberOfShares = this.numberOfShares;\n this.setToZero();\n for (let i = 0; i < positions.length; i += 1) {\n if (positions[i].dealId !== this.dealId || positions[i].facilityId !== this.facilityId || positions[i].fundId !== this.fundId) {\n throw new Error(`Unable to merge positions`);\n }\n sendNumberOfShares += positions[i].numberOfShares;\n positions[i].setToZero();\n }\n return new PositionSC(this._owners[0], sendNumberOfShares, this.dealId, this.facilityId, this.fundId);\n } catch (err) {\n throw new Error(`Unable to merge positions`);\n }\n }\n\n send(to, fundId, numberOfShares) {\n if (this.numberOfShares < numberOfShares) throw new Error(`Insufficient funds`);\n this.numberOfShares = this.numberOfShares - numberOfShares;\n return new PositionSC(to, numberOfShares, this.dealId, this.facilityId, fundId);\n }\n\n setToZero() {\n this.numberOfShares = 0;\n }\n}","__index":{"obj":0},"__func":"constructor","__args":["03c50ea876ddb89e758c2a1a73510a7f5ebc42a309bbb45d3c07fffa22ac274957",100,"4aa441213d5ad3567dd6fce599a7921ff91f65b4302447d3d5fd43bd460264d2:0","134e40d707782b4b694dd3f9b868016c59c6ef29f69a75f95c0763440a9f8792:0","99dcaf6ffc08afb9370f0ed257f36907c4c2f30f3c3d6cd68cec4e6c8e4f3038:0"]}u
https://whatsonchain.com/tx/1062583b5c3f808113b0e02a6a7e7b7478d77aad6e43b71b738756f9c3f70f4a