Skip to content

Commit 827ab2b

Browse files
committed
For each serializable type first test the typeid and codecid against codecid 0. Next update codecid to 1 and re-test. Lastly update the codecid again to 0 and re-test.
1 parent cb1abab commit 827ab2b

File tree

4 files changed

+131
-0
lines changed

4 files changed

+131
-0
lines changed

tests/apis/avm/inputs.test.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,4 +112,16 @@ describe('Inputs', () => {
112112
expect(cmp(in2, in2)).toBe(0);
113113
expect(cmp(in3, in3)).toBe(0);
114114
});
115+
116+
test('TransferableInput codec ids', () => {
117+
const secpTransferInput: SECPTransferInput = new SECPTransferInput((utxos[0].getOutput() as AmountOutput).getAmount());
118+
expect(secpTransferInput.getCodecID()).toBe(0);
119+
expect(secpTransferInput.getInputID()).toBe(5);
120+
secpTransferInput.setCodecID(1)
121+
expect(secpTransferInput.getCodecID()).toBe(1);
122+
expect(secpTransferInput.getInputID()).toBe(65536);
123+
secpTransferInput.setCodecID(0)
124+
expect(secpTransferInput.getCodecID()).toBe(0);
125+
expect(secpTransferInput.getInputID()).toBe(5);
126+
});
115127
});

tests/apis/avm/ops.test.ts

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,20 @@ describe('Operations', () => {
6767
opcopy.fromBuffer(opb);
6868
expect(opcopy.toString()).toBe(op.toString());
6969
});
70+
71+
test("NFTMintOperation codec ids", () => {
72+
const outputOwners: OutputOwners[] = [];
73+
outputOwners.push(new OutputOwners(addrs, locktime, 1));
74+
const nftMintOperation: NFTMintOperation = new NFTMintOperation(0, payload, outputOwners);
75+
expect(nftMintOperation.getCodecID()).toBe(0);
76+
expect(nftMintOperation.getOperationID()).toBe(12);
77+
nftMintOperation.setCodecID(1)
78+
expect(nftMintOperation.getCodecID()).toBe(1);
79+
expect(nftMintOperation.getOperationID()).toBe(131074);
80+
nftMintOperation.setCodecID(0)
81+
expect(nftMintOperation.getCodecID()).toBe(0);
82+
expect(nftMintOperation.getOperationID()).toBe(12);
83+
});
7084
})
7185

7286
describe('NFTTransferOperation', () => {
@@ -109,6 +123,18 @@ describe('Operations', () => {
109123
opcopy.fromBuffer(op.toBuffer());
110124
expect(opcopy.toString()).toBe(op.toString());
111125
});
126+
127+
test("NFTTransferOperation codec ids", () => {
128+
const nftTransferOperation: NFTTransferOperation = new NFTTransferOperation(new NFTTransferOutput(1000, payload, addrs, locktime, 1));
129+
expect(nftTransferOperation.getCodecID()).toBe(0);
130+
expect(nftTransferOperation.getOperationID()).toBe(13);
131+
nftTransferOperation.setCodecID(1)
132+
expect(nftTransferOperation.getCodecID()).toBe(1);
133+
expect(nftTransferOperation.getOperationID()).toBe(131075);
134+
nftTransferOperation.setCodecID(0)
135+
expect(nftTransferOperation.getCodecID()).toBe(0);
136+
expect(nftTransferOperation.getOperationID()).toBe(13);
137+
});
112138
})
113139

114140

tests/apis/avm/outputs.test.ts

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,15 @@ describe('Outputs', () => {
4040
expect(cmp(outpayment1, outpayment3)).toBe(1);
4141
});
4242

43+
test("NFTMintOutput codec ids", () => {
44+
const nftMintOutput: NFTMintOutput = new NFTMintOutput(1, addrs, fallLocktime, 1);
45+
expect(nftMintOutput.getCodecID()).toBe(0);
46+
nftMintOutput.setCodecID(1)
47+
expect(nftMintOutput.getCodecID()).toBe(1);
48+
nftMintOutput.setCodecID(0)
49+
expect(nftMintOutput.getCodecID()).toBe(0);
50+
});
51+
4352
test('Functionality', () => {
4453
let out:NFTMintOutput = new NFTMintOutput(0, addrs, fallLocktime, 3);
4554
expect(out.getOutputID()).toBe(10);
@@ -135,6 +144,18 @@ describe('Outputs', () => {
135144
expect(m4).toBe(true);
136145
});
137146

147+
test("SECPTransferOutput codec ids", () => {
148+
const secPTransferOutput: SECPTransferOutput = new SECPTransferOutput(new BN(10000), addrs, locktime, 3);
149+
expect(secPTransferOutput.getCodecID()).toBe(0);
150+
expect(secPTransferOutput.getOutputID()).toBe(7);
151+
secPTransferOutput.setCodecID(1)
152+
expect(secPTransferOutput.getCodecID()).toBe(1);
153+
expect(secPTransferOutput.getOutputID()).toBe(65538);
154+
secPTransferOutput.setCodecID(0)
155+
expect(secPTransferOutput.getCodecID()).toBe(0);
156+
expect(secPTransferOutput.getOutputID()).toBe(7);
157+
});
158+
138159
test('SECPMintOutput', () => {
139160
let out:SECPMintOutput = new SECPMintOutput(addrs, locktime, 3);
140161
expect(out.getOutputID()).toBe(6);
@@ -164,5 +185,17 @@ describe('Outputs', () => {
164185
let m4:boolean = out.meetsThreshold(addrs, locktime.add(new BN(100)));
165186
expect(m4).toBe(true);
166187
});
188+
189+
test("SECPMintOutput codec ids", () => {
190+
let secpMintOutput: SECPMintOutput = new SECPMintOutput(addrs, locktime, 3);
191+
expect(secpMintOutput.getCodecID()).toBe(0);
192+
expect(secpMintOutput.getOutputID()).toBe(6);
193+
secpMintOutput.setCodecID(1)
194+
expect(secpMintOutput.getCodecID()).toBe(1);
195+
expect(secpMintOutput.getOutputID()).toBe(65537);
196+
secpMintOutput.setCodecID(0)
197+
expect(secpMintOutput.getCodecID()).toBe(0);
198+
expect(secpMintOutput.getOutputID()).toBe(6);
199+
});
167200
});
168201
});

tests/apis/avm/tx.test.ts

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,66 @@ describe('Transactions', () => {
162162
set.addArray(utxos);
163163
});
164164

165+
test("BaseTx codec ids", () => {
166+
const baseTx: BaseTx = new BaseTx();
167+
expect(baseTx.getCodecID()).toBe(0);
168+
expect(baseTx.getTypeID()).toBe(0);
169+
baseTx.setCodecID(1)
170+
expect(baseTx.getCodecID()).toBe(1);
171+
expect(baseTx.getTypeID()).toBe(0);
172+
baseTx.setCodecID(0)
173+
expect(baseTx.getCodecID()).toBe(0);
174+
expect(baseTx.getTypeID()).toBe(0);
175+
});
176+
177+
test("CreateAssetTx codec ids", () => {
178+
const createAssetTx: CreateAssetTx = new CreateAssetTx();
179+
expect(createAssetTx.getCodecID()).toBe(0);
180+
expect(createAssetTx.getTypeID()).toBe(1);
181+
createAssetTx.setCodecID(1)
182+
expect(createAssetTx.getCodecID()).toBe(1);
183+
expect(createAssetTx.getTypeID()).toBe(1);
184+
createAssetTx.setCodecID(0)
185+
expect(createAssetTx.getCodecID()).toBe(0);
186+
expect(createAssetTx.getTypeID()).toBe(1);
187+
});
188+
189+
test("OperationTx codec ids", () => {
190+
const operationTx: OperationTx = new OperationTx();
191+
expect(operationTx.getCodecID()).toBe(0);
192+
expect(operationTx.getTypeID()).toBe(2);
193+
operationTx.setCodecID(1)
194+
expect(operationTx.getCodecID()).toBe(1);
195+
expect(operationTx.getTypeID()).toBe(2);
196+
operationTx.setCodecID(0)
197+
expect(operationTx.getCodecID()).toBe(0);
198+
expect(operationTx.getTypeID()).toBe(2);
199+
});
200+
201+
test("ImportTx codec ids", () => {
202+
const importTx: ImportTx = new ImportTx();
203+
expect(importTx.getCodecID()).toBe(0);
204+
expect(importTx.getTypeID()).toBe(3);
205+
importTx.setCodecID(1)
206+
expect(importTx.getCodecID()).toBe(1);
207+
expect(importTx.getTypeID()).toBe(3);
208+
importTx.setCodecID(0)
209+
expect(importTx.getCodecID()).toBe(0);
210+
expect(importTx.getTypeID()).toBe(3);
211+
});
212+
213+
test("ExportTx codec ids", () => {
214+
const exportTx: ExportTx = new ExportTx();
215+
expect(exportTx.getCodecID()).toBe(0);
216+
expect(exportTx.getTypeID()).toBe(4);
217+
exportTx.setCodecID(1)
218+
expect(exportTx.getCodecID()).toBe(1);
219+
expect(exportTx.getTypeID()).toBe(4);
220+
exportTx.setCodecID(0)
221+
expect(exportTx.getCodecID()).toBe(0);
222+
expect(exportTx.getTypeID()).toBe(4);
223+
});
224+
165225
test('Create small BaseTx that is Goose Egg Tx', async () => {
166226
const bintools: BinTools = BinTools.getInstance();
167227
const outs:TransferableOutput[] = [];

0 commit comments

Comments
 (0)