#0
nonstandard
0.00004000 BSV
Q!h²ÌÃîéàãÌ}©ÑE¹m^!߬ü[y¹V9!h²ÌÃîéàãÌ}©ÑE¹m^!߬ü[y¹V9!h²ÌÃîéàãÌ}©ÑE¹m^!߬ü[y¹V9S®M¸{"__cls":"class SubTradeSC {\n constructor(\n owners = [],\n fundFromId,\n fundToId,\n batchOrderId,\n subBatchOrderId,\n positionId,\n positionSellingAmount,\n chatId,\n stateMachine = [\n ['Approve trade', ['buyer', 'seller', 'agent'], [false, false, false]],\n ['Approve A&A', ['buyer', 'seller', 'agent'], [false, false, false]],\n ['Approve LSTA', ['buyer', 'seller'], [false, false]],\n ['Transfer Position', ['seller'], [false]],\n ['Finalize Trade', ['agent'], [false]],\n ]\n ) {\n this._owners = owners;\n this.fundFromId = fundFromId;\n this.fundToId = fundToId;\n this.batchOrderId = batchOrderId;\n this.subBatchOrderId = subBatchOrderId;\n this.positionId = positionId;\n this.positionSellingPercentage = positionSellingAmount;\n this.chatId = chatId;\n this.stateMachine = stateMachine;\n this.finalized = false;\n this.stateMachineSteps = 0;\n // TODO: stateMachine check for correct format\n for (let i = 0; i < stateMachine.length; i += 1) {\n this.stateMachineSteps += stateMachine[i][1].length;\n }\n this.currentStateMachineStep = 0;\n }\n\n setPositionSellingAmount(newPositionSellingPercentage) {\n this.positionSellingPercentage = newPositionSellingPercentage;\n }\n\n // position to be sold\n setPosition(positionId) {\n this.positionId = positionId;\n }\n\n addOwner(pubKey) {\n this._owners.push(pubKey);\n }\n\n setChatId(chatId) {\n this.chatId = chatId;\n }\n\n updateStateMachine(stepName, role) {\n const findStep = state => {\n return state === stepName;\n };\n const stepIndex = this.stateMachine.findIndex(findStep);\n if (stepIndex < 0) throw new Error(`Step ${stepName} of State Machine doesnt exist.`);\n for (let i = 0; i <= stepIndex; i += 1) {\n for (let j = 0; j < this.stateMachine[i][2].length; j += 1) {\n if (!this.stateMachine[i][j]) throw new Error(`Step ${this.stateMachine[i]} of State Machine isn't finished.`);\n }\n }\n const findRole = stepRole => {\n return stepRole === role;\n };\n const stepRole = this.stateMachine.findIndex(findRole);\n if (stepRole < 0) throw new Error(`Step ${stepName} of State Machine doesnt have ${role} role.`);\n if (!this.stateMachine[stepIndex][stepRole]) {\n this.stateMachine[stepIndex][stepRole] = true;\n this.currentStateMachineStep += 1;\n }\n }\n}","__index":{"obj":0},"__func":"constructor","__args":[["0368b28a1bcc1112c3eee9e0e3cc7da99ed145b96d5e21dfacfc5b798fb9569739","0368b28a1bcc1112c3eee9e0e3cc7da99ed145b96d5e21dfacfc5b798fb9569739","0368b28a1bcc1112c3eee9e0e3cc7da99ed145b96d5e21dfacfc5b798fb9569739"],"2ef01502f391a67b90ae5ee12b1afbc78869dce0bba32fc6564665ff595c9fe7:0","4bf8cc10647a4c8e6e4bfbfe9fd2a7781cf2f45bad8493843fcc746d4605a28a:0","tbd","b10ab95ad1096926f740c15ce0dbb2d4dade30027f9354b855dca500b2c605b5:0","8dbb7aa8b04d079e0c79c5fa67cd674161552f090a98b09f7fb8c055a084afae:1",10,"tbd"]}u
https://whatsonchain.com/tx/fab3abd3f46d0b99f7abaf566a030fbe61bdad63d1da2839dd59a13fb381a6de