diff --git a/Stellar-ledger-entries.x b/Stellar-ledger-entries.x index b9a9a16..87ef0d5 100644 --- a/Stellar-ledger-entries.x +++ b/Stellar-ledger-entries.x @@ -665,6 +665,10 @@ enum EnvelopeType ENVELOPE_TYPE_POOL_REVOKE_OP_ID = 7, ENVELOPE_TYPE_CONTRACT_ID = 8, ENVELOPE_TYPE_SOROBAN_AUTHORIZATION = 9 +#ifdef CAP_0071 + , + ENVELOPE_TYPE_SOROBAN_AUTHORIZATION_WITH_ADDRESS = 10 +#endif }; enum BucketListType diff --git a/Stellar-transaction.x b/Stellar-transaction.x index c22f5b4..d7cf1a2 100644 --- a/Stellar-transaction.x +++ b/Stellar-transaction.x @@ -569,10 +569,28 @@ struct SorobanAddressCredentials SCVal signature; }; +#ifdef CAP_0071 +struct SorobanDelegateSignature { + SCAddress address; + SCVal signature; + SorobanDelegateSignature nestedDelegates<>; +}; + +struct SorobanAddressCredentialsWithDelegates +{ + SorobanAddressCredentials addressCredentials; + SorobanDelegateSignature delegates<>; +}; +#endif + enum SorobanCredentialsType { SOROBAN_CREDENTIALS_SOURCE_ACCOUNT = 0, SOROBAN_CREDENTIALS_ADDRESS = 1 +#ifdef CAP_0071 + , + SOROBAN_CREDENTIALS_ADDRESS_WITH_DELEGATES = 2 +#endif }; union SorobanCredentials switch (SorobanCredentialsType type) @@ -581,6 +599,10 @@ case SOROBAN_CREDENTIALS_SOURCE_ACCOUNT: void; case SOROBAN_CREDENTIALS_ADDRESS: SorobanAddressCredentials address; +#ifdef CAP_0071 +case SOROBAN_CREDENTIALS_ADDRESS_WITH_DELEGATES: + SorobanAddressCredentialsWithDelegates addressWithDelegates; +#endif }; /* Unit of authorization data for Soroban. @@ -731,6 +753,17 @@ case ENVELOPE_TYPE_SOROBAN_AUTHORIZATION: uint32 signatureExpirationLedger; SorobanAuthorizedInvocation invocation; } sorobanAuthorization; +#ifdef CAP_0071 +case ENVELOPE_TYPE_SOROBAN_AUTHORIZATION_WITH_ADDRESS: + struct + { + Hash networkID; + int64 nonce; + uint32 signatureExpirationLedger; + SCAddress address; + SorobanAuthorizedInvocation invocation; + } sorobanAuthorizationWithAddress; +#endif }; enum MemoType