#0
nonstandard
0.00004000 BSV
Q! 0²ý¸ ¨í<
²¼Q *t I®mº
¿¢t!U<ÚEÝù'Õ³ô
¸V
è;6BäKƧ©
<!C~qgzÊr\zç©\´ érq¤-ONCEYf»ô!íVb/HNø%àÉòÛÍÓ.|lãi¥vÑF5_!9cü¾VÃÒáÔÏ
RoÚÉtº>"î®KÈæVÊU®MøB{"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 = '',\n ISIN = '',\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 costOfCarryEndDate = '',\n assignmentFees = false,\n assignmentFeeAmount = 0,\n assignmentFeeType = '',\n accrualSettlementType = '',\n delayedComp = '',\n delayedCompDetails = '',\n amendmentFee = 0,\n costOfFund = 0,\n costOfCarry = 0,\n brokerTrade = false,\n brokerageFeeType = '',\n brokerageFeeAmount = 0,\n brokerageRate = 0,\n brokerFeeWaiving = 0,\n brokerId = '',\n internalCommission = 0,\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 // 'affiliation', // type\n // 'Pick a fund to affiliate with ', //message,\n // false, //complete\n // false //editable\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 generate the A&A terms', //message\n // false, //complete\n // false, //editable\n // ],\n // [\n // 'buyer', //role\n // 'approval', //type\n // 'Please approve the A&A terms', //message\n // false, //complete\n // false, //editable\n // ],\n // [\n // 'seller', //role\n // 'approval', //type\n // 'Please approve the A&A terms', //message\n // false, //complete\n // false, //editable\n // ],\n // [\n // 'agent', //role\n // 'approval', //type\n // 'Please approve the A&A terms', //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 settlement date: {keyDates.expectedSettlementDate}', //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 // 'Transfer Position', //title\n // [\n // [\n // 'seller', //role\n // 'transfer', //type\n // 'Transfer position to the buyer', //message\n // false, //complete\n // false, //editable\n // ],\n // ], //roles\n // '', // document\n // false, //sync\n // ],\n [\n 'Purchase Trade', //title\n [\n [\n 'buyer', //role\n 'approval', //type\n 'Purchase Trade', //message\n false, //complete\n false, //editable\n ],\n ], //roles\n '', //document\n false, //sync\n ],\n [\n 'Finalize Trade', //title\n [\n [\n 'agent', //role\n 'finalize', //type\n 'Please finalize the subtrade', //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 costOfCarryEndDate,\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 brokerTrade,\n brokerageFeeType,\n brokerageFeeAmount,\n brokerageRate,\n brokerFeeWaiving,\n brokerId,\n internalCommission,\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 if (this.finalized) return;\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 || r.editable));\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 if (data === false) {\n changedStep.roles.forEach(r => (r.complete = false));\n changedStep.document = '';\n // logic specific to Settlement date step\n if (step.title === 'Settlement Date Coordination') {\n this.keyDates.expectedSettlementDate = '';\n }\n } else {\n roleAction.complete = true;\n }\n\n break;\n\n case 'transfer':\n roleAction.complete = data;\n break;\n\n case 'finalize':\n roleAction.complete = data;\n this.finalized = true;\n break;\n\n case 'date':\n this.keyDates.expectedSettlementDate = data;\n roleAction.complete = true;\n break;\n\n case 'doc-generate':\n changedStep.document = data;\n roleAction.complete = true;\n break;\n\n case 'affiliation':\n roleAction.complete = true;\n break;\n\n default:\n break;\n }\n this.saveStateMachine(stateMachine);\n this.stateChecksum = this.stateChecksum + 1;\n }\n\n addFile(file) {\n this.files.push(file);\n }\n\n getTotalCommitment() {\n return details.price * positionSellingPercentage;\n }\n\n setAffilateFund(fundId) {\n this.settlementInfo.affiliateFund = fundId;\n }\n}","__index":{"obj":0},"__func":"constructor","__args":[["020930b2fdb80911a8ed3c0e8519b2bc965182202a74a049ae6dba050dbf07a274","03553cda450cddf91d27d5b3f4800d10b89c5685e83b3642e40f4bc6a7a985983c","02438f7e71677aca725c7ae707138ba95cb400e972711ba42d4f4e43455966bbf4","02ed56622f484e81f8251ee0c9f2dbcdd32e7c6ce3699fa51b1b76d146351d055f","033963fc19be56c301d2e1d4cf0d526fdac9740eba3e22ee94ae4bc8e65694adca"],"c80d7159e5b98b5021fcb962a100fd5acc96205fbfcb3f3cb2e089d09d5377d6:0","c39ba0bc5ade9f7fdb5d0ca57e303688a535603ed857328b7385d541855331ea:0","bd080fb94ede6ae527d595310a01e7cecd9da6d6fbb79584c8040ffb9e921dce:0","29f98edd0abd53d2925306d05c0d8d198e9ed6a4bb2e7b3ef8af1acd8c28a73c:0","903d881e10111277ba7d84db8efd6e4e38575e17529fb20a84637eeee8d57967:0",10,"","3936af4a39f95ec1beaa0e6e0e40adcef795dcf5b17a6b8e85c3fdfecb219a2a:0","asdf",0,100,0,"dd28d1824ab9eaddac729b48e6a2dc2ae037283969ee9235e70520ae2c752ef5:0","Buy","Assignment","Par","3a219b33425e45e294ce00c0a37e0f8cdbb0883e81e4452a5b0f94459cd219d0:0","Gross",0,0,"Primary","LMA","Par desk to customer","LMA",false,"USD",0,0,"df","da","as",0,false,0,false,false,0,0,"WAC","01/07/2021","01/08/2021","01/11/2021","01/12/2021","01/13/2021","","01/14/2021",false,0,"","asd","asd","",0,0,0,false,"",0,0,0,"",0,0,0,0,0,0,0,0,"","","asd","asd","adsd","9258bd018241c3c6c52afe34ad1320b40175d8fb59cc3af335ff18218c407b66:0","3a219b33425e45e294ce00c0a37e0f8cdbb0883e81e4452a5b0f94459cd219d0:0","29b7502fdb7c19331b5f8a87a84df0b1ec73ac823780a8788ae673396955df0d:0","fff7b0653bffde6d8946702877eee80ea593aab2a2e4911d3c046af78ee71534:0","36082bd5373761a6ec0bb51a92c0f898eae95a0799e9f3e4c303f7e52516e581:0",{"undefined":"Not Submitted"}]}u
https://whatsonchain.com/tx/f16ccea39ee836b8aac4b9fab08381187ecfe83b2e685f8aa7b32b2b9b9bac96