However, after compilation, generated TS wrapper treats all of these values as Cells:
async getGetC(provider: ContractProvider) {
let builder = new TupleBuilder();
let source = (await provider.get('getC', builder.build())).stack;
let result = source.readCell();
return result;
}
async getGetD(provider: ContractProvider) {
let builder = new TupleBuilder();
let source = (await provider.get('getD', builder.build())).stack;
let result = source.readCell();
return result;
}
async getGetE(provider: ContractProvider) {
let builder = new TupleBuilder();
let source = (await provider.get('getE', builder.build())).stack;
let result = source.readCell();
return result;
}
Both Slice and Builder have their own types in TS so they should be used instead.
Each of the below get methods return different type (Cell, Slice and Builder): https://github.com/tact-lang/tact/blob/7afc87e8b24618301af5fdd58dcf7862ee1d5101/src/test/e2e-emulated/contracts/serialization-3.tact#L47-L55
However, after compilation, generated TS wrapper treats all of these values as Cells:
Both
Slice
andBuilder
have their own types in TS so they should be used instead.