@fsociety sorry for the late response.
I will investigate it this week.
In the mean time, can you use this approach instead when preparing the TX request:
const predicateAmount = 1000;
const req = new ScriptTransactionRequest({
gasPrice: 1,
});
const predicateCoin = await predicate.getResourcesToSpend([[predicateAmount, BaseAssetId]]);
req.addPredicateResources(predicateCoin, predicate);
req.addCoinOutput(wallet.address, predicateAmount, BaseAssetId);
const { gasUsed, requiredQuantities, maxFee } = await wallet.provider.getTransactionCost(req);
req.gasLimit = gasUsed;
await wallet.fund(req, requiredQuantities, maxFee);
const tx2 = await wallet.sendTransaction(req);
await tx2.waitForResult();
When I submitted the Tx like this, It seemed I was running into another error that appears to be specific to your predicate code.
I am still validating this, but I am not sure if this revert code can be used within a Predicate.
Have you succeeded in using this predicate on Rust SDK?