From fc7d6601938a1dc5677a2f34b3ccd56a295c4096 Mon Sep 17 00:00:00 2001 From: Faik Malik Date: Fri, 11 Sep 2026 12:00:25 +0200 Subject: [PATCH 1/2] feat(policy): add the TAIP-7 for field to Policy --- types.go | 1 + 1 file changed, 1 insertion(+) diff --git a/types.go b/types.go index 3d64cbc..782e862 100644 --- a/types.go +++ b/types.go @@ -112,6 +112,7 @@ type Policy struct { Type string `json:"@type"` Context any `json:"@context,omitempty"` From string `json:"from,omitempty"` + For string `json:"for,omitempty"` FromAgent string `json:"fromAgent,omitempty"` FromRole string `json:"fromRole,omitempty"` AboutParty string `json:"aboutParty,omitempty"` From 783a7341b97dcf7b50c2052ca934fa22b9073228 Mon Sep 17 00:00:00 2001 From: Faik Malik Date: Fri, 11 Sep 2026 12:00:32 +0200 Subject: [PATCH 2/2] test(policy): cover the for field round-trip --- types_test.go | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/types_test.go b/types_test.go index ef09549..806e001 100644 --- a/types_test.go +++ b/types_test.go @@ -156,6 +156,28 @@ func TestPolicy_FromFieldRoundTrip(t *testing.T) { } } +func TestPolicy_ForFieldRoundTrip(t *testing.T) { + in := Policy{ + Type: "RequireRelationshipConfirmation", + From: "did:pkh:eip155:1:0xabc", + For: "did:web:originator.vasp.example", + } + data, err := json.Marshal(in) + if err != nil { + t.Fatalf("marshal: %v", err) + } + if !bytes.Contains(data, []byte(`"for":"did:web:originator.vasp.example"`)) { + t.Fatalf("missing for in JSON: %s", string(data)) + } + var out Policy + if err := json.Unmarshal(data, &out); err != nil { + t.Fatalf("unmarshal: %v", err) + } + if out.For != in.For { + t.Errorf("For = %q, want %q", out.For, in.For) + } +} + func TestTransactionConstraints_JSONRoundTrip(t *testing.T) { tc := TransactionConstraints{ Purposes: []string{"BEXP", "SUPP"},