From aabd57c7088e89e74bc016f1cbc6dd47f669394b Mon Sep 17 00:00:00 2001 From: Junkil Park Date: Fri, 8 Mar 2024 15:35:50 -0800 Subject: [PATCH] Fix the API error for Multisig V2 - For the correct (de)serialization, added the serde attribute (tag = "type") to the enum type `MultisigTransactionPayload` --- api/doc/spec.json | 27 ++++++++++++++++++- api/doc/spec.yaml | 16 ++++++++++- api/test-context/src/test_context.rs | 2 ++ api/types/src/transaction.rs | 4 +++ .../typescript/sdk/src/generated/index.ts | 1 + .../models/MultisigTransactionPayload.ts | 4 +-- ...TransactionPayload_EntryFunctionPayload.ts | 10 +++++++ 7 files changed, 60 insertions(+), 4 deletions(-) create mode 100644 ecosystem/typescript/sdk/src/generated/models/MultisigTransactionPayload_EntryFunctionPayload.ts diff --git a/api/doc/spec.json b/api/doc/spec.json index c881b1d935ccc..befbb0f658479 100644 --- a/api/doc/spec.json +++ b/api/doc/spec.json @@ -13366,7 +13366,32 @@ }, "MultisigTransactionPayload": { "type": "object", - "anyOf": [ + "oneOf": [ + { + "$ref": "#/components/schemas/MultisigTransactionPayload_EntryFunctionPayload" + } + ], + "discriminator": { + "propertyName": "type", + "mapping": { + "entry_function_payload": "#/components/schemas/MultisigTransactionPayload_EntryFunctionPayload" + } + } + }, + "MultisigTransactionPayload_EntryFunctionPayload": { + "allOf": [ + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "example": "entry_function_payload" + } + } + }, { "$ref": "#/components/schemas/EntryFunctionPayload" } diff --git a/api/doc/spec.yaml b/api/doc/spec.yaml index 2248780bc4d92..4e4a3ce47048e 100644 --- a/api/doc/spec.yaml +++ b/api/doc/spec.yaml @@ -10072,7 +10072,21 @@ components: $ref: '#/components/schemas/MultisigTransactionPayload' MultisigTransactionPayload: type: object - anyOf: + oneOf: + - $ref: '#/components/schemas/MultisigTransactionPayload_EntryFunctionPayload' + discriminator: + propertyName: type + mapping: + entry_function_payload: '#/components/schemas/MultisigTransactionPayload_EntryFunctionPayload' + MultisigTransactionPayload_EntryFunctionPayload: + allOf: + - type: object + required: + - type + properties: + type: + type: string + example: entry_function_payload - $ref: '#/components/schemas/EntryFunctionPayload' PendingTransaction: type: object diff --git a/api/test-context/src/test_context.rs b/api/test-context/src/test_context.rs index 800d8bacee042..8b755a3e0baf5 100644 --- a/api/test-context/src/test_context.rs +++ b/api/test-context/src/test_context.rs @@ -397,6 +397,7 @@ impl TestContext { "type": "multisig_payload", "multisig_address": multisig_account.to_hex_literal(), "transaction_payload": { + "type": "entry_function_payload", "function": function, "type_arguments": type_args, "arguments": args @@ -822,6 +823,7 @@ impl TestContext { "type": "multisig_payload", "multisig_address": multisig_account.to_hex_literal(), "transaction_payload": { + "type": "entry_function_payload", "function": function, "type_arguments": type_args, "arguments": args diff --git a/api/types/src/transaction.rs b/api/types/src/transaction.rs index a5355f954a2f8..23024fb15a2db 100755 --- a/api/types/src/transaction.rs +++ b/api/types/src/transaction.rs @@ -740,6 +740,8 @@ impl TryFrom