#0
nonstandard
0.00004000 BSV
Q!*èTqwxrl68·"Lgv¼û>áq×P«?Èò´|!§üè˹nÖRõ©9´Yºlü¡4ÎP>b!«ÇqúëhmOL+YíG=$áÅù3[aîQ!@?ܤ~Hø»i-×.ZÉíá±ìMÜoMoxà7zfÞÆ!sUÄM ÞZÉ×x}uÚh-|¸,PÔºU®MÓD{"details":1,"settlementInfo":2,"keyDates":3,"fees":4,"status":5,"roles":6,"kycRequirements":7,"__cls":"class SubTradeSC {\n constructor(\n owners = [],\n fundFromId,\n fundToId,\n batchOrderId,\n subBatchOrderId,\n positionId,\n positionSellingAmount,\n chatId,\n facilityId = '',\n facilityType = '',\n price = 0,\n amountOfTrade = 0,\n discountAmount = 0,\n dealId = '',\n buySellIndicator = '',\n investmentType = 'Assignment',\n parDistressedIndicator = '',\n agentId = '',\n grossSettleNetIndicator = false,\n totalPreCloseTradeAmount = 0,\n totalClosingTradeAmount = 0,\n tradeType = 'Primary',\n tradeAssociation = '',\n primarySpecification = '',\n documentationType = '',\n fundingMemoAdvice = false,\n currency = 'USD',\n finalRate = 0,\n margin = 0,\n CUSIP = 0,\n ISIN = 0,\n tranche = '',\n baseRate = 0,\n transferAtHistoricRate = false,\n historicRate = 0,\n affiliation = false,\n cashlessRoll = false,\n actualAmount = 0,\n costOfCreditValuation = 0,\n costingMethod = 'WAC',\n tradeDate = '',\n tradeBookingDate = '',\n repricingDate = '',\n legalTradeDate = '',\n delayedCompEndDate = '',\n expectedSettlementDate = '',\n assignmentFees = false,\n assignmentFeeAmount = 0,\n assignmentFeeType = '',\n accrualSettlementType = '',\n delayedComp = '',\n delayedCompDetails = '',\n amendmentFee = 0,\n costOfFund = 0,\n costOfCarry = 0,\n brokerageFeeType = '',\n brokerageFeeAmount = 0,\n brokerageRate = 0,\n brokerFeeWaiving = 0,\n internalCommission = 0,\n brokerId = '',\n SECFees = 0,\n MISCFees = 0,\n assignmentRecordationBuyer = 0,\n assignmentRecordationSeller = 0,\n upfrontFee = 0,\n adhocBuyerFee = 0,\n adhocSellerFee = 0,\n settlementStatus = '',\n settlementTime = '',\n tradeStatus = '',\n settlementInstructions = '',\n dependency = '',\n buyer,\n seller,\n agent,\n trustee,\n compliance,\n kycRequirements,\n // =========================================================================\n // State machine\n // =========================================================================\n state = [\n [\n 'Trade Submission', //title\n [\n [\n 'seller', //role\n 'doc-generate', //type\n 'Generate Trade Ticket', //message\n false, //complete\n false, //editable\n ]\n ], //roles\n '', // document\n false //sync\n ],\n [\n 'Buyer affiliation', //title\n [\n [\n 'buyer', //role\n 'doc-generate', //type\n 'Please generate affiliate letter', //message\n false, //complete\n false, //editable\n ]\n ], //roles\n '', // document\n false //sync\n ],\n [\n 'Trade Approval', //title\n [\n [\n 'buyer', //role\n 'approval', //type\n 'Please approve the trade terms', //message\n false, //complete\n false, //editable\n ],\n [\n 'seller', //role\n 'approval', //type\n 'Please approve the trade terms', //message\n false, //complete\n false, //editable\n ],\n [\n 'trustee', //role\n 'approval', //type\n 'Please approve the trade terms', //message\n false, //complete\n false, //editable\n ],\n ], //roles\n '', // document\n false //sync\n ],\n [\n 'Approve A&A', //title\n [\n [\n 'seller', //role\n 'doc-generate', //type\n 'Please approve the A&A terms ... todo: change text', //message\n false, //complete\n false, //editable\n ],\n [\n 'buyer', //role\n 'approval', //type\n 'Please approve the A&A terms ... todo: change text', //message\n false, //complete\n false, //editable\n ],\n [\n 'seller', //role\n 'approval', //type\n 'Please approve the A&A terms ... todo: change text', //message\n false, //complete\n false, //editable\n ],\n [\n 'agent', //role\n 'approval', //type\n 'Please approve the A&A terms ... todo: change text', //message\n false, //complete\n false, //editable\n ],\n ], //roles\n '', // document\n true //sync\n ],\n [\n 'Primary Allocation Confirmation', //title\n [\n [\n 'seller', //role\n 'doc-generate', //type\n 'Please generate the Primary Allocation Confirmation document', //message\n false, //complete\n false, //editable\n ],\n [\n 'buyer', //role\n 'approval', //type\n 'Please approve the Primary Allocation Confirmation document', //message\n false, //complete\n false, //editable\n ],\n [\n 'seller', //role\n 'approval', //type\n 'Please approve the Primary Allocation Confirmation document', //message\n false, //complete\n false, //editable\n ],\n ], //roles\n '', // document\n true //sync\n ],\n [\n 'Settlement Date Coordination', //title\n [\n [\n 'buyer', //role\n 'date', //type\n 'Please establish the settlement date', //message\n false, //complete\n true, //editable\n ],\n [\n 'seller', //role\n 'approval', //type\n `Please approve settlement date: {keyDates.expectedSettlementDate}`, //message\n false, //complete\n false, //editable\n ],\n [\n 'agent', //role\n 'approval', //type\n 'Please approve the Primary Allocation Confirmation document', //message\n false, //complete\n false, //editable\n ],\n ], //roles\n '', // document\n true //sync\n ],\n [\n 'Funding memo acknowledgement', //title\n [\n [\n 'agent', //role\n 'doc-generate', //type\n 'Please generate the Funding Memo document', //message\n false, //complete\n false, //editable\n ],\n [\n 'buyer', //role\n 'approval', //type\n 'Please approve the Funding Memo document', //message\n false, //complete\n false, //editable\n ],\n [\n 'seller', //role\n 'approval', //type\n 'Please approve the Funding Memo document', //message\n false, //complete\n false, //editable\n ],\n ], //roles\n '', // document\n true //sync\n ],\n [\n 'Finalize Trade', //title\n [\n [\n 'agent', //role\n 'approval', //type\n 'Please approve the trade to be finalized ... todo: change text', //message\n false, //complete\n false, //editable\n ]\n ], //roles\n '', // document\n false //sync\n ],\n ],\n stateChecksum = 0\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.state = state;\n this.stateChecksum = stateChecksum;\n this.finalized = false;\n this.stateMachineSteps = 0;\n \n this.details = {\n _owners: owners,\n facilityId,\n facilityType,\n price,\n amountOfTrade,\n discountAmount,\n dealId,\n buySellIndicator,\n investmentType,\n parDistressedIndicator,\n agentId,\n grossSettleNetIndicator,\n totalPreCloseTradeAmount,\n totalClosingTradeAmount,\n tradeType,\n tradeAssociation,\n primarySpecification,\n documentationType,\n };\n \n this.settlementInfo = {\n _owners: owners,\n fundingMemoAdvice,\n currency,\n finalRate,\n margin,\n CUSIP,\n ISIN,\n tranche,\n baseRate,\n transferAtHistoricRate,\n historicRate,\n affiliation,\n affiliateFund: '',\n cashlessRoll,\n actualAmount,\n costOfCreditValuation,\n costingMethod,\n };\n \n this.keyDates = {\n _owners: owners,\n tradeDate,\n tradeBookingDate,\n repricingDate,\n legalTradeDate,\n delayedCompEndDate,\n expectedSettlementDate,\n };\n \n this.fees = {\n _owners: owners,\n assignmentFees,\n assignmentFeeAmount,\n assignmentFeeType,\n accrualSettlementType,\n delayedComp,\n delayedCompDetails,\n amendmentFee,\n costOfFund,\n costOfCarry,\n brokerageFeeType,\n brokerageFeeAmount,\n brokerageRate,\n brokerFeeWaiving,\n internalCommission,\n brokerId,\n SECFees,\n MISCFees,\n assignmentRecordationBuyer,\n assignmentRecordationSeller,\n upfrontFee,\n adhocBuyerFee,\n adhocSellerFee,\n };\n \n this.status = {\n _owners: owners,\n settlementStatus,\n settlementTime,\n tradeStatus,\n settlementInstructions,\n dependency,\n dependencyOrderId: '',\n };\n \n this.roles = {\n _owners: owners,\n buyer,\n seller,\n agent,\n trustee,\n compliance,\n };\n this.kycRequirements = kycRequirements;\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 getRoles(roles) {\n // [\n // [\n // 'seller', //role\n // 'doc-generate', //type\n // 'Generate Trade Ticket', //message\n // false //complete\n // ]\n // ], //roles\n let rolesObjects = []\n for (let i=0; i< roles.length; i += 1) {\n let roleArray = roles[i]\n rolesObjects.push({role: roleArray[0], type: roleArray[1], message: roleArray[2], complete: roleArray[3], editable: roleArray[4]})\n }\n return rolesObjects\n }\n \n buildStateMachine() {\n // state = [\n // [\n // 'Trade Submission', //title\n // [\n // [\n // 'seller', //role\n // 'doc-generate', //type\n // 'Generate Trade Ticket', //message\n // false //complete\n // ]\n // ], //roles\n // '', // document\n // false //sync\n // ],\n // ]\n let stateMachine = []\n for (let i=0; i< this.state.length; i += 1) {\n let stepArray = this.state[i]\n stateMachine.push({id: i, title: stepArray[0], roles: this.getRoles(stepArray[1]), document: stepArray[2], sync: stepArray[3]})\n }\n return stateMachine\n }\n \n processRoles(roles) {\n let tmpRoles = []\n for (let i=0; i< roles.length; i += 1) {\n let stepArray = roles[i]\n tmpRoles.push([stepArray.role, stepArray.type, stepArray.message, stepArray.complete, stepArray.editable])\n }\n return tmpRoles\n }\n \n saveStateMachine(stateMachine) {\n let tmpState = []\n for (let i=0; i< stateMachine.length; i += 1) {\n let stepArray = stateMachine[i]\n tmpState.push([stepArray.title, this.processRoles(stepArray.roles), stepArray.document, stepArray.sync])\n }\n this.state = tmpState\n }\n \n updateState(step, role, data) {\n const stateMachine = this.buildStateMachine()\n const changedStep = stateMachine.find(s => s.id === step.id);\n if (!changedStep) throw new Error(`Step doesnt exist.`);\n const roleAction = changedStep.roles.find(r => r.role === role && !r.complete);\n if (!roleAction) throw new Error(`Role ${role} does not need to act on this step.`);\n \n switch (roleAction.type) {\n case 'approval':\n // logic specific to Settlement date step\n if (step.id === 5 && role === 'seller' && data === false) {\n const buyerAction = changedStep.roles.find(r => r.role === 'buyer');\n this.keyDates.expectedSettlementDate = '';\n buyerAction.complete = false;\n }\n roleAction.complete = data;\n break;\n \n case 'date':\n // Settlement date setup by buyer\n if (step.id === 5) {\n this.keyDates.expectedSettlementDate = data;\n roleAction.complete = true;\n }\n break;\n \n case 'doc-generate':\n changedStep.document = data;\n roleAction.complete = true;\n break;\n \n default:\n break;\n }\n this.saveStateMachine(stateMachine)\n this.stateChecksum = this.stateChecksum + 1;\n }\n addFile(file) {\n this.files.push(file)\n }\n }","__index":{"obj":0},"__func":"constructor","__args":[["022ae854717778726c3638b702224c846776bc12fb053ee171d750ab3fc8f2b47c","03a71b81fc88e8cbb96e169c83d652f510a9399fb459ba056c92fca134ce503e62","03ab8ec771faeb681b6d024f4c132b59ed470f3d24e1c5f9331c5b61839015ee51","03403fdca47e48f8bb692dd72e5ac9ede11db1ec4ddc6f4d6f78e0377a66dec69f","0373559e87c44d09de8e815ac914d778917d7514da682d8d7cb82c831c500cd4ba"],"4e0f0c80f1b0bb1966216aa0b015d17206bd96a5a71ebd67f54542540618c475:0","8ef445c772883775e2d4ce2fb53ad7a5c9aebb0d951f369ac673bed241c086a7:0","c9493d2a4fff2910fab0dcec88fc4c71747ea4109dea775de8c2eaec5e00cd63:0","93d23304babd392f6a59188bf1f299bc48a842e3461a5628953aeb71ef748f5a:0","2f30759c5f9f36813935db8932e2abdf6da2003fddf10ba3dbde58779b719f0f:1",500000,"","89525eaac0f19b0967bb44a919e65cd9df6983c045fe159e94054ec6f4bcc34b:0","kostya facility",12,0,45,"c40c40bf31343aeafad83bd1d5ab9dee5e04779b764490b2f8760e99a57d9ef0:0","Buy","Assignment","Par","947ce27320e97c7984f425dbf6a29dfdc779ede5a01b741b300487585d43c09e:0","Gross",12324,65656540,"Primary","Trade Association","Par desk to customer","LMA","true","USD",12,43,1234554,34432,"Tranchea",2,"true",5,"true","true",12346,786,"WAC","12/28/2020","01/02/2021","01/11/2021","01/14/2021","01/30/2021","01/17/2021","true",2345,"Assignment Fee Type","Settlement","Delayed Comp","01/16/2021",1232,16,32,"Brokerage Fee Type",3345,3,54,64,"Broker Id",3225,7685,8766,353,346,874,4356,"Settlement Status","01/30/2021","Trade Status","Settlement Instructions","Dependency","e27d101956e222a113375d90b8b42c454fef1f81727425beadea11564622beb8:0","947ce27320e97c7984f425dbf6a29dfdc779ede5a01b741b300487585d43c09e:0","c352559edeb4208cf876efb3e9a781db38fabbde8f68f0bf23244395e2be3892:0","0bbe04b694059fdefe110062ce80dc340162ea3a8ca8c1314eb8d15004c2db70:0","f39ffb8d500dcb2cf9dcfb1d8a91eae1f8b76f8942802fc6554b5e54d7f0ffbb:0",{"undefined":"Not Submitted"}]}u
https://whatsonchain.com/tx/f81b87f8f2574280b18d1edfdd6713392efea8d1432bbd297096280101a9828c