{"action":"created","issue":{"url":"https://api.github.com/repos/corda/corda/issues/3431","repository_url":"https://api.github.com/repos/corda/corda","labels_url":"https://api.github.com/repos/corda/corda/issues/3431/labels{/name}","comments_url":"https://api.github.com/repos/corda/corda/issues/3431/comments","events_url":"https://api.github.com/repos/corda/corda/issues/3431/events","html_url":"https://github.com/corda/corda/pull/3431","id":335284089,"node_id":"MDExOlB1bGxSZXF1ZXN0MTk3MDE5Nzg5","number":3431,"title":"IdentitySyncFlowWrapper","user":{"login":"cxyzhang0","id":26045032,"node_id":"MDQ6VXNlcjI2MDQ1MDMy","avatar_url":"https://avatars2.githubusercontent.com/u/26045032?v=4","gravatar_id":"","url":"https://api.github.com/users/cxyzhang0","html_url":"https://github.com/cxyzhang0","followers_url":"https://api.github.com/users/cxyzhang0/followers","following_url":"https://api.github.com/users/cxyzhang0/following{/other_user}","gists_url":"https://api.github.com/users/cxyzhang0/gists{/gist_id}","starred_url":"https://api.github.com/users/cxyzhang0/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cxyzhang0/subscriptions","organizations_url":"https://api.github.com/users/cxyzhang0/orgs","repos_url":"https://api.github.com/users/cxyzhang0/repos","events_url":"https://api.github.com/users/cxyzhang0/events{/privacy}","received_events_url":"https://api.github.com/users/cxyzhang0/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2018-06-25T07:09:22Z","updated_at":"2018-07-20T02:50:09Z","closed_at":null,"author_association":"NONE","pull_request":{"url":"https://api.github.com/repos/corda/corda/pulls/3431","html_url":"https://github.com/corda/corda/pull/3431","diff_url":"https://github.com/corda/corda/pull/3431.diff","patch_url":"https://github.com/corda/corda/pull/3431.patch"},"body":"A simple wrapper of the IdentitySyncFlow by making it standalone with its own flow session.  That makes it easy to use in Responder flows by simplifying messages back and forth.  See https://github.com/corda/obligation-cordapp/issues/5\r\nIt is nothing new, and actually it is just a copy of the wrapper in IdentitySyncFlowTests.  We just expose it to the developers.  Especially, it will be very useful for the obligation transfer use case.\r\nThe name of the object is subject to change based on reviewer suggestions.\r\n\r\n# PR Checklist:\r\n\r\n- [ ] Have you run the unit, integration and smoke tests as described here? https://docs.corda.net/head/testing.html\r\nYes.  And there are new tests in IdentitySyncFlowWrapperTests.kt.\r\nAlso, tested in a version of obligation-cordapp - mock network tests of the TransferObligationFlow using the wrapper passed.  But test via the obligation-cordapp's web UI failed with \"Counterparty sent session rejection message at unexpected time with message class net.corda.confidential.IdentitySyncFlowWrapper$Initiator is not registered\".  \r\nIs there a special way to register Corda provided flows?  BTW, if I implement the wrapper in my CorDapp, I don't have the above registration issue.\r\n- [ ] If you added/changed public APIs, did you write/update the JavaDocs?\r\nIf approved, we will update the docs to introduce the wrapper's usage.\r\n- [ ] If the changes are of interest to application developers, have you added them to the changelog, and potentially release notes?\r\nWill do upon approval.\r\n- [ ] If you are contributing for the first time, please read the agreement in CONTRIBUTING.md now and add to this Pull Request that you agree to it.\r\n\r\nThanks for your code, it's appreciated! :)\r\n"},"comment":{"url":"https://api.github.com/repos/corda/corda/issues/comments/406473421","html_url":"https://github.com/corda/corda/pull/3431#issuecomment-406473421","issue_url":"https://api.github.com/repos/corda/corda/issues/3431","id":406473421,"node_id":"MDEyOklzc3VlQ29tbWVudDQwNjQ3MzQyMQ==","user":{"login":"cxyzhang0","id":26045032,"node_id":"MDQ6VXNlcjI2MDQ1MDMy","avatar_url":"https://avatars2.githubusercontent.com/u/26045032?v=4","gravatar_id":"","url":"https://api.github.com/users/cxyzhang0","html_url":"https://github.com/cxyzhang0","followers_url":"https://api.github.com/users/cxyzhang0/followers","following_url":"https://api.github.com/users/cxyzhang0/following{/other_user}","gists_url":"https://api.github.com/users/cxyzhang0/gists{/gist_id}","starred_url":"https://api.github.com/users/cxyzhang0/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cxyzhang0/subscriptions","organizations_url":"https://api.github.com/users/cxyzhang0/orgs","repos_url":"https://api.github.com/users/cxyzhang0/repos","events_url":"https://api.github.com/users/cxyzhang0/events{/privacy}","received_events_url":"https://api.github.com/users/cxyzhang0/received_events","type":"User","site_admin":false},"created_at":"2018-07-20T02:50:09Z","updated_at":"2018-07-20T02:50:09Z","author_association":"NONE","body":"@shamsasari I don't understand why \"All nodes will end up listening for identity sync requests, regardless of weather they're involved with the counterparty in a transaction or not\".  I thought explicit otherParty is passed in to the flow so only me and the otherParty are exchanging identities.  Right?  Did I miss something?\r\n\r\nThe use case is described in corda/obligation-cordapp#5 (https://github.com/corda/obligation-cordapp/issues/5), for transferring obligation:  A has an obligation to B. Now B transfers it to C.  In the initiating transfer flow, B can sync identities with A and C, but how can A and C sync their identities with each other? One way is to do it in the transfer responder flow where A and C each call the proposed IdentitySyncFlowWrapper to the other.  I can implement the wrapper inside the Obligation CorDapp, but thought it might be useful for other use cases.  Hence the PR for the Corda main.\r\n\r\nIf there is a better approach, please let me know.\r\n\r\nThank you very much for your time.\r\n\r\n"}}
{"actor":{"display_login":"cxyzhang0"}}