@@ -33,9 +33,9 @@ export enum TransactionOperations {
33
33
}
34
34
35
35
export interface TransactionCommon <
36
- O = TransactionOperations ,
37
- A = Record < string , unknown > ,
38
- M = Record < string , unknown >
36
+ O extends TransactionOperations = TransactionOperations . CREATE ,
37
+ A extends Record < string , any > = Record < string , unknown > ,
38
+ M extends Record < string , any > = Record < string , unknown >
39
39
> {
40
40
id ?: string ;
41
41
inputs : TransactionInput [ ] ;
@@ -47,16 +47,16 @@ export interface TransactionCommon<
47
47
}
48
48
49
49
export interface TransactionCommonSigned <
50
- O = TransactionOperations ,
51
- A = Record < string , unknown > ,
52
- M = Record < string , unknown >
50
+ O extends TransactionOperations = TransactionOperations . CREATE ,
51
+ A extends Record < string , any > = Record < string , unknown > ,
52
+ M extends Record < string , any > = Record < string , unknown >
53
53
> extends Omit < TransactionCommon < O , A , M > , 'id' > {
54
54
id : string ;
55
55
}
56
56
57
57
export type TransactionAssetMap <
58
58
Operation ,
59
- A = Record < string , unknown >
59
+ A extends Record < string , any >
60
60
> = Operation extends TransactionOperations . CREATE
61
61
? {
62
62
data : A ;
@@ -66,18 +66,19 @@ export type TransactionAssetMap<
66
66
} ;
67
67
68
68
export interface CreateTransaction <
69
- A = Record < string , unknown > ,
70
- M = Record < string , unknown >
69
+ A extends Record < string , any > = Record < string , unknown > ,
70
+ M extends Record < string , any > = Record < string , unknown >
71
71
> extends TransactionCommon < TransactionOperations . CREATE , A , M > {
72
72
id : string ;
73
73
asset : TransactionAssetMap < TransactionOperations . CREATE , A > ;
74
74
operation : TransactionOperations . CREATE ;
75
75
}
76
76
77
- export interface TransferTransaction < M = Record < string , unknown > >
78
- extends TransactionCommon < TransactionOperations . TRANSFER , any , M > {
77
+ export interface TransferTransaction <
78
+ M extends Record < string , any > = Record < string , unknown >
79
+ > extends TransactionCommon < TransactionOperations . TRANSFER , any , M > {
79
80
id : string ;
80
- asset : TransactionAssetMap < TransactionOperations . TRANSFER > ;
81
+ asset : TransactionAssetMap < TransactionOperations . TRANSFER , { id : string } > ;
81
82
operation : TransactionOperations . TRANSFER ;
82
83
}
83
84
@@ -96,22 +97,22 @@ interface TxTemplate {
96
97
version : '2.0' ;
97
98
}
98
99
99
- declare type DelegateSignFunction = (
100
+ export type DelegateSignFunction = (
100
101
serializedTransaction : string ,
101
102
input : TransactionInput ,
102
103
index ?: number
103
104
) => string ;
104
105
105
- declare type DelegateSignFunctionAsync = (
106
+ export type DelegateSignFunctionAsync = (
106
107
serializedTransaction : string ,
107
108
input : TransactionInput ,
108
109
index ?: number
109
110
) => Promise < string > ;
110
111
111
112
export default class Transaction {
112
- static serializeTransactionIntoCanonicalString < O = TransactionOperations > (
113
- transaction : TransactionCommon < O >
114
- ) : string ;
113
+ static serializeTransactionIntoCanonicalString <
114
+ O extends TransactionOperations = TransactionOperations
115
+ > ( transaction : TransactionCommon < O > ) : string ;
115
116
116
117
static serializeTransactionIntoCanonicalString (
117
118
transaction : CreateTransaction | TransferTransaction
@@ -185,7 +186,7 @@ export default class Transaction {
185
186
static makeTransactionTemplate ( ) : TxTemplate ;
186
187
187
188
static makeTransaction <
188
- O extends keyof TransactionOperations ,
189
+ O extends TransactionOperations ,
189
190
A = Record < string , any > ,
190
191
M = Record < string , any >
191
192
> (
@@ -212,18 +213,23 @@ export default class Transaction {
212
213
metadata : M
213
214
) : TransferTransaction < M > ;
214
215
215
- static signTransaction < O = TransactionOperations . CREATE > (
216
+ static signTransaction <
217
+ O extends TransactionOperations = TransactionOperations . CREATE
218
+ > (
216
219
transaction : TransactionCommon < O > ,
217
220
...privateKeys : string [ ]
218
221
) : TransactionCommonSigned < O > ;
219
222
220
-
221
- static delegateSignTransaction < O = TransactionOperations . CREATE > (
223
+ static delegateSignTransaction <
224
+ O extends TransactionOperations = TransactionOperations . CREATE
225
+ > (
222
226
transaction : TransactionCommon < O > ,
223
227
signFn : DelegateSignFunction
224
228
) : TransactionCommonSigned < O > ;
225
229
226
- static delegateSignTransactionAsync < O = TransactionOperations . CREATE > (
230
+ static delegateSignTransactionAsync <
231
+ O extends TransactionOperations = TransactionOperations . CREATE
232
+ > (
227
233
transaction : TransactionCommon < O > ,
228
234
signFn : DelegateSignFunctionAsync
229
235
) : Promise < TransactionCommonSigned < O > > ;
0 commit comments