#0
nonstandard
0.00004000 BSV
Q!%ß÷0í¨úÎÐ*BÂ7×vRB ܨì«1¾Á¦¸,!fðÚB!±«ù¶wxÒ
:EµkÞÎ)Ôæ²zí"!âÿ?dÒ¢úíÛß-%-¡`Ks
/H!¤3æÖ÷g£ÊX³Rÿ$ô³ø®¦Ea´¤%e\âä-z!+éÎÿèL.õIÕ)ìgZ¢³Ëþ,¬Ëþß(BU®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":[["0325dff730eda8faced02a8642c2371bd776524200dca8969cecab31bec1a6b82c","0266f0da954221b1abf9b6057778d20d3a45b56bde07ce29d4e61f93b27a1ced22","02e214ff3f640f8f13d286a2faed87dbdf102d250b9b172da114604b1473852f48","02a433e6d6f767a3ca1658b352ff24f4b3f81baea6458161b4a425655ce2e42d7a","021c2be9ceffe80c4c2e82f54906d57f29ec675aa2b307cbfe982caccbfedf2842"],"b74d5d1761f702748b8a25e43740fb7b549816d0e03f4bc35e9ad6bdb4786142:0","f9c0cb14b20a72fda5aac74c03c47e1cdf8336afca18c7c47858a5b953d7451a:0","59d3e6329657abb8e672d88d7700771277710c1a65d31cbe83416cfe409c8569:0","d4dbb37811fbc9b861cd915fde5154c846f3d8429d7b10f0b13e62ba4b38e17f:0","703f65c396a051c5301654e13d763b7f3ffb6315a6a2215d8e62b1291f878be7:0",7777,"","c37245898db58ccb9b3685e55dfef1b8fc7646b22e0ce07452e403c2a079c4c3:0","facility 1 type name",0,7777,0,"fe5e06c8b1a1b5113489149e11c0dc8faa3b519773d5e8c1e1efee85e67bab8e:0","Buy","Assignment","Distressed","82ab4208136f96af08560eb9b40ba07d625fd24b3b4fe69dd58171fe3b571740:0","Gross",0,0,"Primary","Trade Association","Par desk to customer","LMA","true","USD",0,0,0,0,"Tranche",0,"true",0,"true","true",0,0,"WAC","01/04/2021","01/09/2021","01/17/2021","01/20/2021","01/28/2021","01/31/2021","true",0,"Assignment Fee Type","Accrual Settlement Type","Delayed Comp","02/01/2021",10,1,2,"Brokerage Fee Type",0,0,0,0,"Broker Id",1000,11111,11123,4343,5544,123,5560,"Settlement Status","01/15/2021","Trade Status","Settlement Instructions","Dependency","e62c7c96ab0b1fb1f2fb08eb636a0c724882b0c3d6a8e311f7ea217e621ad65f:0","82ab4208136f96af08560eb9b40ba07d625fd24b3b4fe69dd58171fe3b571740:0","aa2d735961f4c1acaf48c4a8860d2805520d1523114594094e472d49b3458fda:0","bf703b5790c483d4c501d0beba80c0ae7b83b93f8c946c679616d1cabbd11ee0:0","a7dff5952630d78fac380a2b9b5d1b5317ed92cd6e8d2c64f5ad51f6ad62eb49:0",{}]}u
https://whatsonchain.com/tx/45e82f22b28708bcea4c8ca83c2e2f8fcbdaf183c835e7f6f93006b4af892ba0