Closed gidonkatten closed 3 years ago
@gidonkatten - our test environment (@algo-builder/runtime) doesn't support yet TEALv4.
Are you sure in TEALv3, a one tx can pay a fee for another one in the group?
We will try to test in in the Alogrand node (older version, which doesn't support TEALv4).
Anyway, we will need to update the TEALv4 soon.
From Fabrice on discord general dev It's available since the consensus upgrade of TEAL v4, but you don't need your application to be in TEAL v4 to support it.
Hi I tried this on algod version
8590393345
2.7.1.stable [rel/stable] (commit #5e00bcd6)
go-algorand is licensed with AGPLv3.0
source code available at https://github.com/algorand/go-algorand
this is the script i tried
async function run (runtimeEnv, deployer) {
// we start with extracting acocunt objects from the config.
const masterAccount = deployer.accountsByName.get('master-account');
const goldOwner = deployer.accountsByName.get('alice');
const john = deployer.accountsByName.get('john');
const bob = deployer.accountsByName.get('bob');
// Accounts can only be active if they poses minimum amont of ALGOs.
// Here we fund the accounts with 5e6, 5e6 and 1e6 micro AlGOs.
const message = 'funding account';
const promises = [
executeTransaction(deployer, mkParam(masterAccount, goldOwner.addr, 5e6, { note: message })),
executeTransaction(deployer, mkParam(masterAccount, john.addr, 1e5, { note: message })),
executeTransaction(deployer, mkParam(masterAccount, bob.addr, 1e6, { note: message }))];
await Promise.all(promises);
// group with fee distribution
const groupTx = [
{
type: types.TransactionType.TransferAlgo,
sign: types.SignType.SecretKey,
fromAccount: goldOwner,
toAccountAddr: john.addr,
amountMicroAlgos: 58,
payFlags: { totalFee: 2000 }
},
{
type: types.TransactionType.TransferAlgo,
sign: types.SignType.SecretKey,
fromAccount: john,
toAccountAddr: bob.addr,
amountMicroAlgos: 58,
payFlags: { totalFee: 0 }
}
];
console.log("Checking fee transaction!!");
await executeTransaction(deployer, groupTx);
console.log("Completed!");
}
Group transaction, here john has only minimum balance i.e 1e5
microAlgos.
this transaction was not passed on this version
network tried to deduct fee from john, although fee from goldowner is set to 2000.
@amityadav0 are you sure that algob is not changing the txn from john to have fee 1000? I would suggest trying to use goal
or one of the sdks
yes, i checked, there could be another problem. i will check with sdk and goal now.
@gidonkatten you are right, the problem is with the flatFee variable, It needs to be updated according to atomic transaction update. Updating it, thanks
@amityadav0 When till this be merged into master? Thanks
@gidonkatten Hi, probably this week we will make a release with this feature.
Describe the bug
Fees have been updated in algorand where there is now pooled transaction fees https://developer.algorand.org/articles/introducing-algorand-virtual-machine-avm-09-release/. This applies to all TEAL versions - not just TEAL4.
Expected Behavior
If for example you want to buy an asset from an escrow; you group together a payment to the escrow (tx0) and the asset transfer from the escrow (tx1). You should be able to have tx0 fee 2000 and tx1 fee 0.
Current Behavior
When you try and use a fee less than 1000 then it is automically switched to 1000.