Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

App Call Inner Transaction - missing arguments field? #28

Open
mangoplane opened this issue Jun 8, 2023 · 1 comment
Open

App Call Inner Transaction - missing arguments field? #28

mangoplane opened this issue Jun 8, 2023 · 1 comment

Comments

@mangoplane
Copy link

Hi,

Trying to do an inner transaction that's an application call to a specified application index with arguments provided in a way that allows for any application to be called, with any arguments. As far as I can tell, there's no way to specify the arguments at the moment. Maybe it is yet to be implemented?

See: https://github.com/FrankSzendzielarz/AlgorandVisualStudio/blob/main/Transactions/InnerTransactions.md
for inner transaction docs. Below the AppCall class spec is given.

namespace AlgoStudio.Core
{
    public sealed class AppCall : InnerTransaction
    {
        public ulong NumAppArgs { get; private set; }

        public ulong NumAccounts { get; private set; }

        public ulong NumAssets { get; private set; }

        public ulong NumApplications { get; private set; }

        public ulong GlobalNumUint { get; private set; }

        public ulong GlobalNumByteSlice { get; private set; }

        public ulong LocalNumUint { get; private set; }

        public ulong LocalNumByteSlice { get; private set; }

        public ulong ApplicationID { get; private set; }

        public ulong OnCompletion { get; private set; }

        public byte[] ApprovalProgram { get; private set; }

        public byte[] ClearStateProgram { get; private set; }

        public ulong ExtraProgramPages { get; private set; }

        private AppCall()
        {
        }

        public AppCall(ulong numAppArgs, ulong numAccounts, ulong numAssets, ulong numApplications, ulong localNumUint, ulong localNumByteSlice, OnCompleteType onCompletion, ulong? globalNumUint = 0uL, ulong? globalNumByteSlice = 0uL, byte[] approvalProgram = null, byte[] clearStateProgram = null, ulong? extraProgramPages = 0uL, ulong? fee = 0uL, ulong? firstValid = 0uL, ulong? lastValid = 0uL, AccountReference sender = null, ulong? txType = 0uL, byte[] lease = null, byte[] note = null, byte[] rekeyTo = null)
            : base("appl", fee, firstValid, lastValid, sender, lease, note, rekeyTo)
        {
        }
    }
}

Kind regards.

@mangoplane
Copy link
Author

mangoplane commented Jun 8, 2023

The reason I need this inner transaction, is I'm trying to make an "escrow wallet" that allows for arbitrary inner transactions to be called to simulate a generic wallet, with some basic management applied on top. Perhaps you can think of an alternative way to do an application call, from the contract account, that's triggered externally?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant