Mapping between inputs and outputs in graphql

How to map between inputs and outputs using graphql if more in number.

Below is the example, from which how can I identify which is the sender/input for address addr1qyspgxk…anjq4ejvup and addr1qxl0rmnxa5…7x4sr5qsyh?

Depending on the index? if the index is 0 in output then the first object of inputs array?

{
“data”: {
“transactions”: [
{
“block”: {
“number”: 4812301
},
“blockIndex”: 0,
“deposit”: 0,
“fee”: 174477,
“hash”: “d5cbcd425f597fe4da24f6dfff1254001ec370aa9ed758aa88b5e78a8230f065”,
“inputs”: [
{
“address”: “addr1qygkwt3fje0teuqz2rv3x64htezh50q5pxjmfp6vlqshgp86twhwhsnn8w4tn3urjjev0fdvkwk5zgha0dz86v3m7x4sgn80eq”,
“sourceTxIndex”: 1,
“sourceTxHash”: “131e394e4ef250e8758725bb1ca208a87c0d25145c23e689dcc9fd84b97622f7”,
“value”: “50000000000”
},
{
“address”: “addr1q8rwlkk6wjfe4huxdwdmamrmzpm3w0af7k33zcyaa4qlff86twhwhsnn8w4tn3urjjev0fdvkwk5zgha0dz86v3m7x4srdejw9”,
“sourceTxIndex”: 0,
“sourceTxHash”: “3ebc6540df0550f543b167513ebc94f1013f51e20856a61ebcb3248f0e2a930d”,
“value”: “1000000000”
}
],
“inputs_aggregate”: {
“aggregate”: {
“sum”: {
“value”: “51000000000”
}
}
},
“mint”: ,
“outputs”: [
{
“index”: 0,
“address”: “addr1qyspgxkj6kmqvydhrdkahmdr06wm7m84j4qk8znxmuwdfunrzhuey4w20ydzzrkwsqte2n6xdlk2wwnuhty6unqlanjq4ejvup”,
“value”: “1673000000”,
“tokens”:
},
{
“index”: 1,
“address”: “addr1qxl0rmnxa5s23jj0jcmfumkpuxgqkjkqc3teww0slcwqtth6twhwhsnn8w4tn3urjjev0fdvkwk5zgha0dz86v3m7x4sr5qsyh”,
“value”: “49326825523”,
“tokens”:
}
],
“outputs_aggregate”: {
“aggregate”: {
“sum”: {
“value”: “50999825523”
}
}
},
“size”: 430,
“totalOutput”: “50999825523”,
“withdrawals_aggregate”: {
“aggregate”: {
“sum”: {
“amount”: null
}
}
}
}
]
}
}