-
Notifications
You must be signed in to change notification settings - Fork 224
/
operation1056.ts
145 lines (126 loc) · 4.32 KB
/
operation1056.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
import { ethers } from "hardhat";
import abiITPFtOperation1056 from "../abi/ITPFtOperation1056.json";
/**
* TPFtOperation1056 - Permite que participantes cadastrados no Real Digital
* realizem a operação de recompra e revenda envolvendo Título Público Federal tokenizado (TPFt)
*/
async function tradeReverseRepo() {
/**
* Obtém contrato TPFtOperation1056
*/
const TPFtOperation1056 = await ethers.getContractAt(
abiITPFtOperation1056,
'<Endereço do Contrato TPFtOperation1056>'
);
/**
* Sender refere-se ao cedente (detentor de TPFts)
*/
const senderAddress = '<Endereço do Cedente de TPFt>';
const sender = await ethers.getSigner(senderAddress);
/**
* Receiver refere-se ao cessionário (não detentor de TPFts)
*/
const receiverAddress = '<Endereço do Cessionário de TPFt>';
const receiver = await ethers.getSigner(receiverAddress);
const params = {
originalOperationId: "<Número de operação compromissada + data vigente no formato yyyyMMdd>",
returnOperationId: "<Número de operação de recompra e revenda + data vigente no formato yyyyMMdd>"
};
/**
* Execução por parte do sender (cedente) para realizar
* operação de recompra e revenda no retorno.
*/
const senderTransaction = await TPFtOperation1056
.connect(sender)
.tradeReverseRepo(
params.originalOperationId,
params.returnOperationId
);
/**
* Aguarda até que a transação enviada pelo sender seja confirmada na blockchain.
*/
await senderTransaction.wait();
/**
* Execução por parte do receiver (cessionário) para realizar operação de
* Compra e venda informando o CNPJ8.
*/
const receiverTransaction = await TPFtOperation1056
.connect(receiver)
.tradeReverseRepo(
params.originalOperationId,
params.returnOperationId
);
/**
* Aguarda até que a transação enviada pelo receiver seja confirmada na blockchain.
*/
await receiverTransaction.wait();
/**
* Resposta da execução da operação de compra e venda
*/
console.log(senderTransaction.hash);
console.log(receiverTransaction.hash);
}
/**
* TPFtOperation1056 - Permite que participantes cadastrados no Real Digital
* realizem a operação de recompra e revenda com preço unitário de retorno aberto
* envolvendo Título Público Federal tokenizado (TPFt)
*/
async function tradeReverseRepoOpenReturnPrice() {
/**
* Obtém contrato TPFtOperation1056
*/
const TPFtOperation1056 = await ethers.getContractAt(
abiITPFtOperation1056,
'<Endereço do Contrato TPFtOperation1056>'
);
/**
* Sender refere-se ao cedente (detentor de TPFts)
*/
const senderAddress = '<Endereço do Cedente de TPFt>';
const sender = await ethers.getSigner(senderAddress);
/**
* Receiver refere-se ao cessionário (não detentor de TPFts)
*/
const receiverAddress = '<Endereço do Cessionário de TPFt>';
const receiver = await ethers.getSigner(receiverAddress);
const params = {
originalOperationId: "<Número de operação compromissada + data vigente no formato yyyyMMdd>",
returnOperationId: "<Número de operação de recompra e revenda + data vigente no formato yyyyMMdd>",
returnUnitPrice: "<Preço unitário de retorno aberto>"
};
/**
* Execução por parte do sender (cedente) para realizar
* operação de recompra e revenda no retorno.
*/
const senderTransaction = await TPFtOperation1056
.connect(sender)
.tradeReverseRepoOpenReturnPrice(
params.originalOperationId,
params.returnOperationId,
params.returnUnitPrice
);
/**
* Aguarda até que a transação enviada pelo sender seja confirmada na blockchain.
*/
await senderTransaction.wait();
/**
* Execução por parte do receiver (cessionário) para realizar operação de
* Compra e venda informando o CNPJ8.
*/
const receiverTransaction = await TPFtOperation1056
.connect(receiver)
.tradeReverseRepoOpenReturnPrice(
params.originalOperationId,
params.returnOperationId,
params.returnUnitPrice
);
/**
* Aguarda até que a transação enviada pelo receiver seja confirmada na blockchain.
*/
await receiverTransaction.wait();
/**
* Resposta da execução da operação de compra e venda
*/
console.log(senderTransaction.hash);
console.log(receiverTransaction.hash);
}