algorand / algorand/go-algorand
circular transfers failing
- Vorherrschende Sprache
- Go
- Sterne
- 1.4k
- Forks
- 537
- Ø Merge
- 1 T. 7 Std.
- Gemergte PRs (30 T.)
- 18
Beschreibung
I have the following transaction group:
```
0: type: appl, from: A, amt: 0, fee: 1000,
1: type: pay, from: B, to: A, amt: 0, fee: 1000
2: type: pay, from: A, to: B, amt: 1000, fee: 1000
3: type: pay, from: A, to: C, amt: 0, fee: 1000
```
where A's balance is very large, but B and C have zero balances.
My expectation is that this succeeds, because txn 2 gives the B the funds it needs to pay its fee. But, when I run this I get an error:
```
{"message":"TransactionPool.Remember: transaction ODBLSF6JJZYAEVMDP7O2ON4BNMJLXGIZZW536O5SBTSGJ4WKFRHA: overspend (account 7RR22O4SJSENA2F6WYYMJIRM4RSSK2OKCECIKGDNTET66XZOPSXUZ6T2TQ, data {_struct:{} Status:Offline MicroAlgos:{Raw:0} Rewa
rdsBase:0 RewardedMicroAlgos:{Raw:0} VoteID:[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] SelectionID:[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] VoteFirstValid:0 VoteLastValid:0 VoteKeyDilution:0
AssetParams:map[] Assets:map[] AuthAddr:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY5HFKQ AppLocalStates:map[] AppParams:map[] TotalAppSchema:{_struct:{} NumUint:0 NumByteSlice:0}}, tried to spend {1000})"}
```
The documentation on atomic transfers claims it supports circular transfers --- https://developer.algorand.org/docs/features/atomic_transfers/ --- but this appears to not be the case.
I did some looking around in the code and I don't see anything that evaluate the fixed point of the transaction group and allow circular transfers like this. But maybe I'm missing something in the code.
My guess is that my group could be re-ordered to pay B first, but that just happens to work in this case. But the general feature of circular transfers needs to be able to solve any ordering.
My txns in base64:
```
gqNzaWfEQJRr8JuWIAp2sLhn1Q/eZZLXX0DTl31OEu0VYCpZrQucPtMjY8r9UVSUV0agyoHFFOXnWdwpF4G3h+PhcNnoPgijdHhuiaRhcGlkNaNmZWXNA+iiZnbNEC6jZ2VuqWRldm5ldC12MaJnaMQgVTBRy6LxQAy6OhrpOlFuNubh/E8MkOKgNpWtpT8fpwCjZ3JwxCABClFrQcdJRMBDxXijVXCCS4GPGNtuAgidzQJt34lkoKJsds0UFqNzbmTEIOjYBqx+8xsECneuVypovdQ4EOPrTv3noIne++0AKqoKpHR5cGWkYXBwbIKkbHNpZ4KjYXJnlcQgARtNA92MAfEEkUPPnEyBfksWfx0bg+XG8PENiboee87EILaAla3gUo/yLE9gSXeQ7pwdnPddboCBLR00HWeZPWenxAgAAAAAAAAAAMQIAAAAAAAAEC7ECAAAAAAATEtAoWzEygIgBQYBAAUEJgIIAAAAAAAAADUguJKvRAjx+j1K7K+bmHi84o9GT/pInMAMfmJ0vDAHA+0zABAiEkEAijMAGCgXEkEAgTMCECMSQQB5MwIHMQASQQBwMwIIMwEBEkEAZjMDECMSQQBeMwMHKRJBAFYxFiMSQQBPMRAjEkEASDEIJBJBAEExBzMCABJBADgxMSUSQQAxJBYCLRJBACkkMwMIEkEAISMWMwMAUCwEUAIuEkEAEi8XJBJBAAtCAAoyBCEEEkEAACRDI0OjdHhuiaNmZWXNA+iiZnbNEC6jZ2VuqWRldm5ldC12MaJnaMQgVTBRy6LxQAy6OhrpOlFuNubh/E8MkOKgNpWtpT8fpwCjZ3JwxCABClFrQcdJRMBDxXijVXCCS4GPGNtuAgidzQJt34lkoKJsds0UFqNyY3bEIOjYBqx+8xsECneuVypovdQ4EOPrTv3noIne++0AKqoKo3NuZMQg/GOtO5JMiNBovrYwxKIs5GUlacoRBIUYbZkn718ufK+kdHlwZaNwYXmCo3NpZ8RAwv/J8BLUsXeHMT9QL9uRWphYXM7vkEk2H6DQBvW9Lc5W58PsS1ptnBAE0qUZXjyUXcLEutkmieeCEfE6v3eWBaN0eG6Ko2FtdM0D6KNmZWXNA+iiZnbNEC6jZ2VuqWRldm5ldC12MaJnaMQgVTBRy6LxQAy6OhrpOlFuNubh/E8MkOKgNpWtpT8fpwCjZ3JwxCABClFrQcdJRMBDxXijVXCCS4GPGNtuAgidzQJt34lkoKJsds0UFqNyY3bEIPxjrTuSTIjQaL62MMSiLORlJWnKEQSFGG2ZJ+9fLnyvo3NuZMQg6NgGrH7zGwQKd65XKmi91DgQ4+tO/eegid777QAqqgqkdHlwZaNwYXmCo3NpZ8RANdDWIVG57C210s+jXbgrv529EQC52tjCMlZi4GoCeDb5q3dVo6oK4EIGRv77bf+ENdrMN19+ZkhgxZ4rQBb5D6N0eG6Jo2ZlZc0D6KJmds0QLqNnZW6pZGV2bmV0LXYxomdoxCBVMFHLovFADLo6Guk6UW425uH8TwyQ4qA2la2lPx+nAKNncnDEIAEKUWtBx0lEwEPFeKNVcIJLgY8Y224CCJ3NAm3fiWSgomx2zRQWo3JjdsQguJKvRAjx+j1K7K+bmHi84o9GT/pInMAMfmJ0vDAHA+2jc25kxCDo2AasfvMbBAp3rlcqaL3UOBDj607956CJ3vvtACqqCqR0eXBlo3BheQ==
```
Beitragsleitfaden
Bewertung
Dieses Issue wurde noch nicht bewertet.