From 2839649b2804eeccd5d0737d54781e324be4ae21 Mon Sep 17 00:00:00 2001 From: mihaisc Date: Thu, 13 Jan 2022 08:24:57 -0800 Subject: [PATCH] Fix bugs (#286) * fix token * fix dispenser * fixed fre --- abis/Dispenser.json | 6 ++--- docker/docker-compose.yml | 2 +- schema.graphql | 19 ++++++++------ src/mappings/dispenser.ts | 28 ++++++++++++++++++--- src/mappings/erc721Factory.ts | 11 +++++++++ src/mappings/fixedRateExchange.ts | 37 ++++++++++++++++------------ src/mappings/utils/dispenserUtils.ts | 2 +- src/mappings/utils/tokenUtils.ts | 3 ++- subgraph.rinkeby.yaml | 18 +++++++------- subgraph.yaml | 2 -- 10 files changed, 85 insertions(+), 43 deletions(-) diff --git a/abis/Dispenser.json b/abis/Dispenser.json index b756617..d4aac80 100644 --- a/abis/Dispenser.json +++ b/abis/Dispenser.json @@ -351,8 +351,8 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b5060405161137b38038061137b83398101604081905261002f916100ae565b6001600160a01b0381166100895760405162461bcd60e51b815260206004820152601f60248201527f44697370656e7365723a2057726f6e6720526f75746572206164647265737300604482015260640160405180910390fd5b600080546001600160a01b0319166001600160a01b03929092169190911790556100de565b6000602082840312156100c057600080fd5b81516001600160a01b03811681146100d757600080fd5b9392505050565b61128e806100ed6000396000f3fe6080604052600436106100865760003560e01c806345d6646b1161005957806345d6646b1461011d578063645b8b1b1461013d578063938d71d0146101a0578063f887ea40146101c0578063f9bfaa7d146101e057600080fd5b80631d746d831461008b57806324ce2917146100a05780633398086a146100c05780633ea053eb146100fd575b600080fd5b61009e6100993660046110e2565b610200565b005b3480156100ac57600080fd5b5061009e6100bb366004611151565b6107d6565b3480156100cc57600080fd5b506100e06100db3660046111ca565b610a08565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561010957600080fd5b5061009e61011836600461108d565b610a32565b34801561012957600080fd5b5061009e6101383660046110af565b610b0f565b34801561014957600080fd5b5061015d61015836600461108d565b610bfd565b6040805197151588526001600160a01b039687166020890152941515948701949094526060860192909252608085015260a08401521660c082015260e0016100f4565b3480156101ac57600080fd5b5061009e6101bb36600461111e565b610d84565b3480156101cc57600080fd5b506000546100e0906001600160a01b031681565b3480156101ec57600080fd5b5061009e6101fb36600461108d565b610ea2565b6001600160a01b03831661022f5760405162461bcd60e51b8152600401610226906111fc565b60405180910390fd5b6001600160a01b03831660009081526001602081905260409091205460ff161515146102945760405162461bcd60e51b815260206004820152601460248201527344697370656e736572206e6f742061637469766560601b6044820152606401610226565b600082116102da5760405162461bcd60e51b8152602060048201526013602482015272125b9d985b1a59081e995c9bc8185b5bdd5b9d606a1b6044820152606401610226565b6001600160a01b038316600090815260016020819052604090912001548211156103385760405162461bcd60e51b815260206004820152600f60248201526e082dadeeadce840e8dede40d0d2ced608b1b6044820152606401610226565b6001600160a01b0383811660009081526001602052604090206003015416156103d9576001600160a01b038381166000908152600160205260409020600301541633146103d95760405162461bcd60e51b815260206004820152602960248201527f546869732061646472657373206973206e6f7420616c6c6f77656420746f2072604482015268195c5d595cdd08111560ba1b6064820152608401610226565b6040516370a0823160e01b81526001600160a01b03828116600483015284916000918316906370a082319060240160206040518083038186803b15801561041f57600080fd5b505afa158015610433573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045791906111e3565b6001600160a01b03861660009081526001602052604090206002015490915081106104c45760405162461bcd60e51b815260206004820152601760248201527f43616c6c65722062616c616e636520746f6f20686967680000000000000000006044820152606401610226565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a082319060240160206040518083038186803b15801561050657600080fd5b505afa15801561051a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061053e91906111e3565b905084811080156105c157506040516355138f0d60e11b81523060048201526001600160a01b0384169063aa271e1a9060240160206040518083038186803b15801561058957600080fd5b505afa15801561059d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c191906111a8565b156106b8576001600160a01b0383166340c10f19306105e08489611233565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561062657600080fd5b505af115801561063a573d6000803e3d6000fd5b50506040516370a0823160e01b81523060048201526001600160a01b03861692506370a08231915060240160206040518083038186803b15801561067d57600080fd5b505afa158015610691573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b591906111e3565b90505b848110156106fe5760405162461bcd60e51b81526020600482015260136024820152724e6f7420656e6f75676820726573657276657360681b6044820152606401610226565b60405163a9059cbb60e01b81526001600160a01b0385811660048301526024820187905284169063a9059cbb90604401602060405180830381600087803b15801561074857600080fd5b505af115801561075c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078091906111a8565b50836001600160a01b0316866001600160a01b03167f63e223ff524bd93d4cbff98ef34405b39f63ded87f5a8d85e39ccda966f13543876040516107c691815260200190565b60405180910390a3505050505050565b6000546001600160a01b031633146108295760405162461bcd60e51b81526020600482015260166024820152752234b9b832b739b2b91d1037b7363c903937baba32b960511b6044820152606401610226565b6001600160a01b03851661084f5760405162461bcd60e51b8152600401610226906111fc565b6001600160a01b03858116600090815260016020526040902054610100900416158061089c57506001600160a01b0385811660009081526001602052604090205461010090048116908316145b6108e85760405162461bcd60e51b815260206004820152601960248201527f44617461546f6b656e20616c72656164792063726561746564000000000000006044820152606401610226565b6001600160a01b038581166000818152600160208181526040808420805489881661010081026001600160a81b031990921691909117851782558185018c905560028083018c905560039092018054988a166001600160a01b0319998a16811790915582549586018355919095527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace90930180549096168517909555845189815290810188905293840152917f7d0aa581e6eb87e15f58588ff20c39ff6622fc796ec9bb664df6ed3eb02442c99060600160405180910390a3806001600160a01b0316856001600160a01b03167fac5c7317d52e88de62aff4ba6869a4882a4556557b761158934d2fd32a8b2ca560405160405180910390a35050505050565b60028181548110610a1857600080fd5b6000918252602090912001546001600160a01b0316905081565b6001600160a01b038116610a585760405162461bcd60e51b8152600401610226906111fc565b6001600160a01b038181166000908152600160205260409020546101009004163314610ac65760405162461bcd60e51b815260206004820152601b60248201527f44617461546f6b656e20616c72656164792061637469766174656400000000006044820152606401610226565b6001600160a01b038116600081815260016020526040808220805460ff19169055517f393f01061139648745ea000bb047bbe1785bd3a19d3a9c90f6747e1d2357d2b89190a250565b6001600160a01b038216610b355760405162461bcd60e51b8152600401610226906111fc565b6001600160a01b038281166000908152600160205260409020546101009004163314610ba35760405162461bcd60e51b815260206004820152601b60248201527f44617461546f6b656e20616c72656164792061637469766174656400000000006044820152606401610226565b6001600160a01b0382811660008181526001602052604080822060030180546001600160a01b0319169486169485179055517fac5c7317d52e88de62aff4ba6869a4882a4556557b761158934d2fd32a8b2ca59190a35050565b60008080808080806001600160a01b038816610c2b5760405162461bcd60e51b8152600401610226906111fc565b6001600160a01b0388811660008181526001602081905260409182902080549181015460029091015492516370a0823160e01b815230600482015260ff83169c506101009092049094169950929650945089916370a082319060240160206040518083038186803b158015610c9f57600080fd5b505afa158015610cb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd791906111e3565b6040516355138f0d60e11b81523060048201529093506001600160a01b0382169063aa271e1a9060240160206040518083038186803b158015610d1957600080fd5b505afa158015610d2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5191906111a8565b6001600160a01b03998a16600090815260016020526040902060030154989a979990989597949650929490921692915050565b6001600160a01b038316610daa5760405162461bcd60e51b8152600401610226906111fc565b6001600160a01b038381166000908152600160205260409020546101009004163314610e085760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b21037bbb732b960991b6044820152606401610226565b6001600160a01b0383166000818152600160208190526040808320805460ff19168317815580830187905560029081018690558054928301815583527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace90910180546001600160a01b03191684179055517fe9372084cb52c5392afee4b9d79d131e04b1e65676088d50a8f39fffb16a87459190a2505050565b6001600160a01b038116610ec85760405162461bcd60e51b8152600401610226906111fc565b6001600160a01b038181166000908152600160205260409020546101009004163314610f265760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b21037bbb732b960991b6044820152606401610226565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a082319060240160206040518083038186803b158015610f6a57600080fd5b505afa158015610f7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa291906111e3565b9050801561106c5760405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb90604401602060405180830381600087803b158015610ff257600080fd5b505af1158015611006573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102a91906111a8565b5060405181815233906001600160a01b038516907f03185212530fcdce6b38fbf62ed27ab29b1b047f59b76b17401388a70a95f41b9060200160405180910390a35b505050565b80356001600160a01b038116811461108857600080fd5b919050565b60006020828403121561109f57600080fd5b6110a882611071565b9392505050565b600080604083850312156110c257600080fd5b6110cb83611071565b91506110d960208401611071565b90509250929050565b6000806000606084860312156110f757600080fd5b61110084611071565b92506020840135915061111560408501611071565b90509250925092565b60008060006060848603121561113357600080fd5b61113c84611071565b95602085013595506040909401359392505050565b600080600080600060a0868803121561116957600080fd5b61117286611071565b9450602086013593506040860135925061118e60608701611071565b915061119c60808701611071565b90509295509295909350565b6000602082840312156111ba57600080fd5b815180151581146110a857600080fd5b6000602082840312156111dc57600080fd5b5035919050565b6000602082840312156111f557600080fd5b5051919050565b6020808252601e908201527f496e76616c696420746f6b656e20636f6e747261637420616464726573730000604082015260600190565b60008282101561125357634e487b7160e01b600052601160045260246000fd5b50039056fea264697066735822122004afb0f7c12a5b7604f9dd6fdb896a5d4bb4b44a30debbc5a35ae7348f82694f64736f6c63430008070033", - "deployedBytecode": "0x6080604052600436106100865760003560e01c806345d6646b1161005957806345d6646b1461011d578063645b8b1b1461013d578063938d71d0146101a0578063f887ea40146101c0578063f9bfaa7d146101e057600080fd5b80631d746d831461008b57806324ce2917146100a05780633398086a146100c05780633ea053eb146100fd575b600080fd5b61009e6100993660046110e2565b610200565b005b3480156100ac57600080fd5b5061009e6100bb366004611151565b6107d6565b3480156100cc57600080fd5b506100e06100db3660046111ca565b610a08565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561010957600080fd5b5061009e61011836600461108d565b610a32565b34801561012957600080fd5b5061009e6101383660046110af565b610b0f565b34801561014957600080fd5b5061015d61015836600461108d565b610bfd565b6040805197151588526001600160a01b039687166020890152941515948701949094526060860192909252608085015260a08401521660c082015260e0016100f4565b3480156101ac57600080fd5b5061009e6101bb36600461111e565b610d84565b3480156101cc57600080fd5b506000546100e0906001600160a01b031681565b3480156101ec57600080fd5b5061009e6101fb36600461108d565b610ea2565b6001600160a01b03831661022f5760405162461bcd60e51b8152600401610226906111fc565b60405180910390fd5b6001600160a01b03831660009081526001602081905260409091205460ff161515146102945760405162461bcd60e51b815260206004820152601460248201527344697370656e736572206e6f742061637469766560601b6044820152606401610226565b600082116102da5760405162461bcd60e51b8152602060048201526013602482015272125b9d985b1a59081e995c9bc8185b5bdd5b9d606a1b6044820152606401610226565b6001600160a01b038316600090815260016020819052604090912001548211156103385760405162461bcd60e51b815260206004820152600f60248201526e082dadeeadce840e8dede40d0d2ced608b1b6044820152606401610226565b6001600160a01b0383811660009081526001602052604090206003015416156103d9576001600160a01b038381166000908152600160205260409020600301541633146103d95760405162461bcd60e51b815260206004820152602960248201527f546869732061646472657373206973206e6f7420616c6c6f77656420746f2072604482015268195c5d595cdd08111560ba1b6064820152608401610226565b6040516370a0823160e01b81526001600160a01b03828116600483015284916000918316906370a082319060240160206040518083038186803b15801561041f57600080fd5b505afa158015610433573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045791906111e3565b6001600160a01b03861660009081526001602052604090206002015490915081106104c45760405162461bcd60e51b815260206004820152601760248201527f43616c6c65722062616c616e636520746f6f20686967680000000000000000006044820152606401610226565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a082319060240160206040518083038186803b15801561050657600080fd5b505afa15801561051a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061053e91906111e3565b905084811080156105c157506040516355138f0d60e11b81523060048201526001600160a01b0384169063aa271e1a9060240160206040518083038186803b15801561058957600080fd5b505afa15801561059d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c191906111a8565b156106b8576001600160a01b0383166340c10f19306105e08489611233565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561062657600080fd5b505af115801561063a573d6000803e3d6000fd5b50506040516370a0823160e01b81523060048201526001600160a01b03861692506370a08231915060240160206040518083038186803b15801561067d57600080fd5b505afa158015610691573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b591906111e3565b90505b848110156106fe5760405162461bcd60e51b81526020600482015260136024820152724e6f7420656e6f75676820726573657276657360681b6044820152606401610226565b60405163a9059cbb60e01b81526001600160a01b0385811660048301526024820187905284169063a9059cbb90604401602060405180830381600087803b15801561074857600080fd5b505af115801561075c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078091906111a8565b50836001600160a01b0316866001600160a01b03167f63e223ff524bd93d4cbff98ef34405b39f63ded87f5a8d85e39ccda966f13543876040516107c691815260200190565b60405180910390a3505050505050565b6000546001600160a01b031633146108295760405162461bcd60e51b81526020600482015260166024820152752234b9b832b739b2b91d1037b7363c903937baba32b960511b6044820152606401610226565b6001600160a01b03851661084f5760405162461bcd60e51b8152600401610226906111fc565b6001600160a01b03858116600090815260016020526040902054610100900416158061089c57506001600160a01b0385811660009081526001602052604090205461010090048116908316145b6108e85760405162461bcd60e51b815260206004820152601960248201527f44617461546f6b656e20616c72656164792063726561746564000000000000006044820152606401610226565b6001600160a01b038581166000818152600160208181526040808420805489881661010081026001600160a81b031990921691909117851782558185018c905560028083018c905560039092018054988a166001600160a01b0319998a16811790915582549586018355919095527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace90930180549096168517909555845189815290810188905293840152917f7d0aa581e6eb87e15f58588ff20c39ff6622fc796ec9bb664df6ed3eb02442c99060600160405180910390a3806001600160a01b0316856001600160a01b03167fac5c7317d52e88de62aff4ba6869a4882a4556557b761158934d2fd32a8b2ca560405160405180910390a35050505050565b60028181548110610a1857600080fd5b6000918252602090912001546001600160a01b0316905081565b6001600160a01b038116610a585760405162461bcd60e51b8152600401610226906111fc565b6001600160a01b038181166000908152600160205260409020546101009004163314610ac65760405162461bcd60e51b815260206004820152601b60248201527f44617461546f6b656e20616c72656164792061637469766174656400000000006044820152606401610226565b6001600160a01b038116600081815260016020526040808220805460ff19169055517f393f01061139648745ea000bb047bbe1785bd3a19d3a9c90f6747e1d2357d2b89190a250565b6001600160a01b038216610b355760405162461bcd60e51b8152600401610226906111fc565b6001600160a01b038281166000908152600160205260409020546101009004163314610ba35760405162461bcd60e51b815260206004820152601b60248201527f44617461546f6b656e20616c72656164792061637469766174656400000000006044820152606401610226565b6001600160a01b0382811660008181526001602052604080822060030180546001600160a01b0319169486169485179055517fac5c7317d52e88de62aff4ba6869a4882a4556557b761158934d2fd32a8b2ca59190a35050565b60008080808080806001600160a01b038816610c2b5760405162461bcd60e51b8152600401610226906111fc565b6001600160a01b0388811660008181526001602081905260409182902080549181015460029091015492516370a0823160e01b815230600482015260ff83169c506101009092049094169950929650945089916370a082319060240160206040518083038186803b158015610c9f57600080fd5b505afa158015610cb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd791906111e3565b6040516355138f0d60e11b81523060048201529093506001600160a01b0382169063aa271e1a9060240160206040518083038186803b158015610d1957600080fd5b505afa158015610d2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5191906111a8565b6001600160a01b03998a16600090815260016020526040902060030154989a979990989597949650929490921692915050565b6001600160a01b038316610daa5760405162461bcd60e51b8152600401610226906111fc565b6001600160a01b038381166000908152600160205260409020546101009004163314610e085760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b21037bbb732b960991b6044820152606401610226565b6001600160a01b0383166000818152600160208190526040808320805460ff19168317815580830187905560029081018690558054928301815583527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace90910180546001600160a01b03191684179055517fe9372084cb52c5392afee4b9d79d131e04b1e65676088d50a8f39fffb16a87459190a2505050565b6001600160a01b038116610ec85760405162461bcd60e51b8152600401610226906111fc565b6001600160a01b038181166000908152600160205260409020546101009004163314610f265760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b21037bbb732b960991b6044820152606401610226565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a082319060240160206040518083038186803b158015610f6a57600080fd5b505afa158015610f7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa291906111e3565b9050801561106c5760405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb90604401602060405180830381600087803b158015610ff257600080fd5b505af1158015611006573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102a91906111a8565b5060405181815233906001600160a01b038516907f03185212530fcdce6b38fbf62ed27ab29b1b047f59b76b17401388a70a95f41b9060200160405180910390a35b505050565b80356001600160a01b038116811461108857600080fd5b919050565b60006020828403121561109f57600080fd5b6110a882611071565b9392505050565b600080604083850312156110c257600080fd5b6110cb83611071565b91506110d960208401611071565b90509250929050565b6000806000606084860312156110f757600080fd5b61110084611071565b92506020840135915061111560408501611071565b90509250925092565b60008060006060848603121561113357600080fd5b61113c84611071565b95602085013595506040909401359392505050565b600080600080600060a0868803121561116957600080fd5b61117286611071565b9450602086013593506040860135925061118e60608701611071565b915061119c60808701611071565b90509295509295909350565b6000602082840312156111ba57600080fd5b815180151581146110a857600080fd5b6000602082840312156111dc57600080fd5b5035919050565b6000602082840312156111f557600080fd5b5051919050565b6020808252601e908201527f496e76616c696420746f6b656e20636f6e747261637420616464726573730000604082015260600190565b60008282101561125357634e487b7160e01b600052601160045260246000fd5b50039056fea264697066735822122004afb0f7c12a5b7604f9dd6fdb896a5d4bb4b44a30debbc5a35ae7348f82694f64736f6c63430008070033", + "bytecode": "0x608060405234801561001057600080fd5b5060405161160938038061160983398101604081905261002f916100b3565b60016000556001600160a01b03811661008e5760405162461bcd60e51b815260206004820152601f60248201527f44697370656e7365723a2057726f6e6720526f75746572206164647265737300604482015260640160405180910390fd5b600180546001600160a01b0319166001600160a01b03929092169190911790556100e3565b6000602082840312156100c557600080fd5b81516001600160a01b03811681146100dc57600080fd5b9392505050565b611517806100f26000396000f3fe6080604052600436106100865760003560e01c806345d6646b1161005957806345d6646b1461011d578063645b8b1b1461013d578063938d71d0146101a0578063f887ea40146101c0578063f9bfaa7d146101e057600080fd5b80631d746d831461008b57806324ce2917146100a05780633398086a146100c05780633ea053eb146100fd575b600080fd5b61009e61009936600461129e565b610200565b005b3480156100ac57600080fd5b5061009e6100bb3660046112da565b61077e565b3480156100cc57600080fd5b506100e06100db366004611331565b6109b1565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561010957600080fd5b5061009e61011836600461134a565b6109db565b34801561012957600080fd5b5061009e610138366004611365565b610ab8565b34801561014957600080fd5b5061015d61015836600461134a565b610ba6565b6040805197151588526001600160a01b039687166020890152941515948701949094526060860192909252608085015260a08401521660c082015260e0016100f4565b3480156101ac57600080fd5b5061009e6101bb366004611398565b610d0f565b3480156101cc57600080fd5b506001546100e0906001600160a01b031681565b3480156101ec57600080fd5b5061009e6101fb36600461134a565b610e2f565b600260005414156102585760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b60026000556001600160a01b0383166102835760405162461bcd60e51b815260040161024f906113cb565b6001600160a01b03831660009081526002602052604090205460ff166102e25760405162461bcd60e51b815260206004820152601460248201527344697370656e736572206e6f742061637469766560601b604482015260640161024f565b600082116103285760405162461bcd60e51b8152602060048201526013602482015272125b9d985b1a59081e995c9bc8185b5bdd5b9d606a1b604482015260640161024f565b6001600160a01b0383166000908152600260205260409020600101548211156103855760405162461bcd60e51b815260206004820152600f60248201526e082dadeeadce840e8dede40d0d2ced608b1b604482015260640161024f565b6001600160a01b038381166000908152600260205260409020600301541615610426576001600160a01b038381166000908152600260205260409020600301541633146104265760405162461bcd60e51b815260206004820152602960248201527f546869732061646472657373206973206e6f7420616c6c6f77656420746f2072604482015268195c5d595cdd08111560ba1b606482015260840161024f565b6040516370a0823160e01b81526001600160a01b03828116600483015284916000918316906370a0823190602401602060405180830381865afa158015610471573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104959190611402565b6001600160a01b0386166000908152600260208190526040909120015490915081106105035760405162461bcd60e51b815260206004820152601760248201527f43616c6c65722062616c616e636520746f6f2068696768000000000000000000604482015260640161024f565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa15801561054a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061056e9190611402565b905084811080156105e257506040516355138f0d60e11b81523060048201526001600160a01b0384169063aa271e1a90602401602060405180830381865afa1580156105be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e2919061141b565b156106ca576001600160a01b0383166340c10f1930610601848961143d565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561064757600080fd5b505af115801561065b573d6000803e3d6000fd5b50506040516370a0823160e01b81523060048201526001600160a01b03861692506370a082319150602401602060405180830381865afa1580156106a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c79190611402565b90505b848110156107105760405162461bcd60e51b81526020600482015260136024820152724e6f7420656e6f75676820726573657276657360681b604482015260640161024f565b6107246001600160a01b0387168587610fdf565b836001600160a01b0316866001600160a01b03167f63e223ff524bd93d4cbff98ef34405b39f63ded87f5a8d85e39ccda966f135438760405161076991815260200190565b60405180910390a35050600160005550505050565b6001546001600160a01b031633146107d15760405162461bcd60e51b81526020600482015260166024820152752234b9b832b739b2b91d1037b7363c903937baba32b960511b604482015260640161024f565b6001600160a01b0385166107f75760405162461bcd60e51b815260040161024f906113cb565b6001600160a01b03858116600090815260026020526040902054610100900416158061084457506001600160a01b0385811660009081526002602052604090205461010090048116908316145b6108905760405162461bcd60e51b815260206004820152601960248201527f44617461546f6b656e20616c7265616479206372656174656400000000000000604482015260640161024f565b6001600160a01b038581166000818152600260208181526040808420805489881661010081026001600160a81b031990921691909117600190811783558083018d90559482018b905560039182018054988a166001600160a01b0319998a16811790915582549586018355919095527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b90930180549096168517909555845189815290810188905293840152917f7d0aa581e6eb87e15f58588ff20c39ff6622fc796ec9bb664df6ed3eb02442c99060600160405180910390a3806001600160a01b0316856001600160a01b03167fac5c7317d52e88de62aff4ba6869a4882a4556557b761158934d2fd32a8b2ca560405160405180910390a35050505050565b600381815481106109c157600080fd5b6000918252602090912001546001600160a01b0316905081565b6001600160a01b038116610a015760405162461bcd60e51b815260040161024f906113cb565b6001600160a01b038181166000908152600260205260409020546101009004163314610a6f5760405162461bcd60e51b815260206004820152601b60248201527f44617461546f6b656e20616c7265616479206163746976617465640000000000604482015260640161024f565b6001600160a01b038116600081815260026020526040808220805460ff19169055517f393f01061139648745ea000bb047bbe1785bd3a19d3a9c90f6747e1d2357d2b89190a250565b6001600160a01b038216610ade5760405162461bcd60e51b815260040161024f906113cb565b6001600160a01b038281166000908152600260205260409020546101009004163314610b4c5760405162461bcd60e51b815260206004820152601b60248201527f44617461546f6b656e20616c7265616479206163746976617465640000000000604482015260640161024f565b6001600160a01b0382811660008181526002602052604080822060030180546001600160a01b0319169486169485179055517fac5c7317d52e88de62aff4ba6869a4882a4556557b761158934d2fd32a8b2ca59190a35050565b60008080808080806001600160a01b038816610bd45760405162461bcd60e51b815260040161024f906113cb565b6001600160a01b0388811660008181526002602081905260409182902080546001820154919092015492516370a0823160e01b815230600482015260ff83169c506101009092049094169950929650945089916370a0823190602401602060405180830381865afa158015610c4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c719190611402565b6040516355138f0d60e11b81523060048201529093506001600160a01b0382169063aa271e1a90602401602060405180830381865afa158015610cb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdc919061141b565b6001600160a01b03998a16600090815260026020526040902060030154989a979990989597949650929490921692915050565b6001600160a01b038316610d355760405162461bcd60e51b815260040161024f906113cb565b6001600160a01b038381166000908152600260205260409020546101009004163314610d935760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b21037bbb732b960991b604482015260640161024f565b6001600160a01b0383166000818152600260208190526040808320805460ff191660019081178255818101889055920185905560038054928301815583527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b90910180546001600160a01b03191684179055517fe9372084cb52c5392afee4b9d79d131e04b1e65676088d50a8f39fffb16a87459190a2505050565b60026000541415610e825760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161024f565b60026000556001600160a01b038116610ead5760405162461bcd60e51b815260040161024f906113cb565b6001600160a01b038181166000908152600260205260409020546101009004163314610f0b5760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b21037bbb732b960991b604482015260640161024f565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610f54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f789190611402565b90508015610fd557610f946001600160a01b0384163383610fdf565b60405181815233906001600160a01b038516907f03185212530fcdce6b38fbf62ed27ab29b1b047f59b76b17401388a70a95f41b9060200160405180910390a35b5050600160005550565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052611031908490611036565b505050565b600061108b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166111089092919063ffffffff16565b80519091501561103157808060200190518101906110a9919061141b565b6110315760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161024f565b60606111178484600085611121565b90505b9392505050565b6060824710156111825760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161024f565b843b6111d05760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161024f565b600080866001600160a01b031685876040516111ec9190611492565b60006040518083038185875af1925050503d8060008114611229576040519150601f19603f3d011682016040523d82523d6000602084013e61122e565b606091505b509150915061123e828286611249565b979650505050505050565b6060831561125857508161111a565b8251156112685782518084602001fd5b8160405162461bcd60e51b815260040161024f91906114ae565b80356001600160a01b038116811461129957600080fd5b919050565b6000806000606084860312156112b357600080fd5b6112bc84611282565b9250602084013591506112d160408501611282565b90509250925092565b600080600080600060a086880312156112f257600080fd5b6112fb86611282565b9450602086013593506040860135925061131760608701611282565b915061132560808701611282565b90509295509295909350565b60006020828403121561134357600080fd5b5035919050565b60006020828403121561135c57600080fd5b61111a82611282565b6000806040838503121561137857600080fd5b61138183611282565b915061138f60208401611282565b90509250929050565b6000806000606084860312156113ad57600080fd5b6113b684611282565b95602085013595506040909401359392505050565b6020808252601e908201527f496e76616c696420746f6b656e20636f6e747261637420616464726573730000604082015260600190565b60006020828403121561141457600080fd5b5051919050565b60006020828403121561142d57600080fd5b8151801515811461111a57600080fd5b60008282101561145d57634e487b7160e01b600052601160045260246000fd5b500390565b60005b8381101561147d578181015183820152602001611465565b8381111561148c576000848401525b50505050565b600082516114a4818460208701611462565b9190910192915050565b60208152600082518060208401526114cd816040850160208701611462565b601f01601f1916919091016040019291505056fea2646970667358221220fb4b6a3a8a2f8ea9e99a8ff393a1aacd46b89c5c97ff6c190118e2b1d031179664736f6c634300080a0033", + "deployedBytecode": "0x6080604052600436106100865760003560e01c806345d6646b1161005957806345d6646b1461011d578063645b8b1b1461013d578063938d71d0146101a0578063f887ea40146101c0578063f9bfaa7d146101e057600080fd5b80631d746d831461008b57806324ce2917146100a05780633398086a146100c05780633ea053eb146100fd575b600080fd5b61009e61009936600461129e565b610200565b005b3480156100ac57600080fd5b5061009e6100bb3660046112da565b61077e565b3480156100cc57600080fd5b506100e06100db366004611331565b6109b1565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561010957600080fd5b5061009e61011836600461134a565b6109db565b34801561012957600080fd5b5061009e610138366004611365565b610ab8565b34801561014957600080fd5b5061015d61015836600461134a565b610ba6565b6040805197151588526001600160a01b039687166020890152941515948701949094526060860192909252608085015260a08401521660c082015260e0016100f4565b3480156101ac57600080fd5b5061009e6101bb366004611398565b610d0f565b3480156101cc57600080fd5b506001546100e0906001600160a01b031681565b3480156101ec57600080fd5b5061009e6101fb36600461134a565b610e2f565b600260005414156102585760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b60026000556001600160a01b0383166102835760405162461bcd60e51b815260040161024f906113cb565b6001600160a01b03831660009081526002602052604090205460ff166102e25760405162461bcd60e51b815260206004820152601460248201527344697370656e736572206e6f742061637469766560601b604482015260640161024f565b600082116103285760405162461bcd60e51b8152602060048201526013602482015272125b9d985b1a59081e995c9bc8185b5bdd5b9d606a1b604482015260640161024f565b6001600160a01b0383166000908152600260205260409020600101548211156103855760405162461bcd60e51b815260206004820152600f60248201526e082dadeeadce840e8dede40d0d2ced608b1b604482015260640161024f565b6001600160a01b038381166000908152600260205260409020600301541615610426576001600160a01b038381166000908152600260205260409020600301541633146104265760405162461bcd60e51b815260206004820152602960248201527f546869732061646472657373206973206e6f7420616c6c6f77656420746f2072604482015268195c5d595cdd08111560ba1b606482015260840161024f565b6040516370a0823160e01b81526001600160a01b03828116600483015284916000918316906370a0823190602401602060405180830381865afa158015610471573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104959190611402565b6001600160a01b0386166000908152600260208190526040909120015490915081106105035760405162461bcd60e51b815260206004820152601760248201527f43616c6c65722062616c616e636520746f6f2068696768000000000000000000604482015260640161024f565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa15801561054a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061056e9190611402565b905084811080156105e257506040516355138f0d60e11b81523060048201526001600160a01b0384169063aa271e1a90602401602060405180830381865afa1580156105be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e2919061141b565b156106ca576001600160a01b0383166340c10f1930610601848961143d565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561064757600080fd5b505af115801561065b573d6000803e3d6000fd5b50506040516370a0823160e01b81523060048201526001600160a01b03861692506370a082319150602401602060405180830381865afa1580156106a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c79190611402565b90505b848110156107105760405162461bcd60e51b81526020600482015260136024820152724e6f7420656e6f75676820726573657276657360681b604482015260640161024f565b6107246001600160a01b0387168587610fdf565b836001600160a01b0316866001600160a01b03167f63e223ff524bd93d4cbff98ef34405b39f63ded87f5a8d85e39ccda966f135438760405161076991815260200190565b60405180910390a35050600160005550505050565b6001546001600160a01b031633146107d15760405162461bcd60e51b81526020600482015260166024820152752234b9b832b739b2b91d1037b7363c903937baba32b960511b604482015260640161024f565b6001600160a01b0385166107f75760405162461bcd60e51b815260040161024f906113cb565b6001600160a01b03858116600090815260026020526040902054610100900416158061084457506001600160a01b0385811660009081526002602052604090205461010090048116908316145b6108905760405162461bcd60e51b815260206004820152601960248201527f44617461546f6b656e20616c7265616479206372656174656400000000000000604482015260640161024f565b6001600160a01b038581166000818152600260208181526040808420805489881661010081026001600160a81b031990921691909117600190811783558083018d90559482018b905560039182018054988a166001600160a01b0319998a16811790915582549586018355919095527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b90930180549096168517909555845189815290810188905293840152917f7d0aa581e6eb87e15f58588ff20c39ff6622fc796ec9bb664df6ed3eb02442c99060600160405180910390a3806001600160a01b0316856001600160a01b03167fac5c7317d52e88de62aff4ba6869a4882a4556557b761158934d2fd32a8b2ca560405160405180910390a35050505050565b600381815481106109c157600080fd5b6000918252602090912001546001600160a01b0316905081565b6001600160a01b038116610a015760405162461bcd60e51b815260040161024f906113cb565b6001600160a01b038181166000908152600260205260409020546101009004163314610a6f5760405162461bcd60e51b815260206004820152601b60248201527f44617461546f6b656e20616c7265616479206163746976617465640000000000604482015260640161024f565b6001600160a01b038116600081815260026020526040808220805460ff19169055517f393f01061139648745ea000bb047bbe1785bd3a19d3a9c90f6747e1d2357d2b89190a250565b6001600160a01b038216610ade5760405162461bcd60e51b815260040161024f906113cb565b6001600160a01b038281166000908152600260205260409020546101009004163314610b4c5760405162461bcd60e51b815260206004820152601b60248201527f44617461546f6b656e20616c7265616479206163746976617465640000000000604482015260640161024f565b6001600160a01b0382811660008181526002602052604080822060030180546001600160a01b0319169486169485179055517fac5c7317d52e88de62aff4ba6869a4882a4556557b761158934d2fd32a8b2ca59190a35050565b60008080808080806001600160a01b038816610bd45760405162461bcd60e51b815260040161024f906113cb565b6001600160a01b0388811660008181526002602081905260409182902080546001820154919092015492516370a0823160e01b815230600482015260ff83169c506101009092049094169950929650945089916370a0823190602401602060405180830381865afa158015610c4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c719190611402565b6040516355138f0d60e11b81523060048201529093506001600160a01b0382169063aa271e1a90602401602060405180830381865afa158015610cb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdc919061141b565b6001600160a01b03998a16600090815260026020526040902060030154989a979990989597949650929490921692915050565b6001600160a01b038316610d355760405162461bcd60e51b815260040161024f906113cb565b6001600160a01b038381166000908152600260205260409020546101009004163314610d935760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b21037bbb732b960991b604482015260640161024f565b6001600160a01b0383166000818152600260208190526040808320805460ff191660019081178255818101889055920185905560038054928301815583527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b90910180546001600160a01b03191684179055517fe9372084cb52c5392afee4b9d79d131e04b1e65676088d50a8f39fffb16a87459190a2505050565b60026000541415610e825760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161024f565b60026000556001600160a01b038116610ead5760405162461bcd60e51b815260040161024f906113cb565b6001600160a01b038181166000908152600260205260409020546101009004163314610f0b5760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b21037bbb732b960991b604482015260640161024f565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610f54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f789190611402565b90508015610fd557610f946001600160a01b0384163383610fdf565b60405181815233906001600160a01b038516907f03185212530fcdce6b38fbf62ed27ab29b1b047f59b76b17401388a70a95f41b9060200160405180910390a35b5050600160005550565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052611031908490611036565b505050565b600061108b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166111089092919063ffffffff16565b80519091501561103157808060200190518101906110a9919061141b565b6110315760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161024f565b60606111178484600085611121565b90505b9392505050565b6060824710156111825760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161024f565b843b6111d05760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161024f565b600080866001600160a01b031685876040516111ec9190611492565b60006040518083038185875af1925050503d8060008114611229576040519150601f19603f3d011682016040523d82523d6000602084013e61122e565b606091505b509150915061123e828286611249565b979650505050505050565b6060831561125857508161111a565b8251156112685782518084602001fd5b8160405162461bcd60e51b815260040161024f91906114ae565b80356001600160a01b038116811461129957600080fd5b919050565b6000806000606084860312156112b357600080fd5b6112bc84611282565b9250602084013591506112d160408501611282565b90509250925092565b600080600080600060a086880312156112f257600080fd5b6112fb86611282565b9450602086013593506040860135925061131760608701611282565b915061132560808701611282565b90509295509295909350565b60006020828403121561134357600080fd5b5035919050565b60006020828403121561135c57600080fd5b61111a82611282565b6000806040838503121561137857600080fd5b61138183611282565b915061138f60208401611282565b90509250929050565b6000806000606084860312156113ad57600080fd5b6113b684611282565b95602085013595506040909401359392505050565b6020808252601e908201527f496e76616c696420746f6b656e20636f6e747261637420616464726573730000604082015260600190565b60006020828403121561141457600080fd5b5051919050565b60006020828403121561142d57600080fd5b8151801515811461111a57600080fd5b60008282101561145d57634e487b7160e01b600052601160045260246000fd5b500390565b60005b8381101561147d578181015183820152602001611465565b8381111561148c576000848401525b50505050565b600082516114a4818460208701611462565b9190910192915050565b60208152600082518060208401526114cd816040850160208701611462565b601f01601f1916919091016040019291505056fea2646970667358221220fb4b6a3a8a2f8ea9e99a8ff393a1aacd46b89c5c97ff6c190118e2b1d031179664736f6c634300080a0033", "linkReferences": {}, "deployedLinkReferences": {} -} +} \ No newline at end of file diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index bec8677..5898091 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -3,7 +3,7 @@ services: graph-node: image: graphprotocol/graph-node:v0.25.0 ports: - - '8000:8000' + - '9000:8000' - '8001:8001' - '8020:8020' - '8030:8030' diff --git a/schema.graphql b/schema.graphql index 77f490e..b6a01d9 100644 --- a/schema.graphql +++ b/schema.graphql @@ -9,7 +9,7 @@ type Token @entity { isDatatoken: Boolean! "address of ERC721 that owns the token, valid only for datatokens" - owner: String + nft: Nft "array of addresses with minter role, can be user wallet address, dispenser etc." minter: [User!] @@ -293,7 +293,6 @@ type FixedRateExchange @entity { totalSwapValue: BigDecimal! "address that is allowed to swap tokens" allowedSwapper: String - supply: BigInt! "if the owner allowes the fre to mint" withMint: Boolean "if the fre has the minter role on the datatoken" @@ -338,11 +337,12 @@ type FixedRateExchangeSwap @entity { type Dispenser @entity { - "datatoken address" + "token address" id: ID! - active: Boolean! - owner: User! - datatoken: Token! + active: Boolean! + "if using the enterprise template the owner will always be the erc721 factory, for normal template it will a user" + owner: String + token: Token! allowedSwapper: String isMinter: Boolean @@ -351,7 +351,12 @@ type Dispenser @entity { "max balance of requester. If the balance is higher, the dispense is rejected" maxBalance: BigDecimal! "how many tokens are left" - balance: BigDecimal! + balance: BigDecimal! + + + block: Int! + createdTimestamp: Int! + tx: String! dispenses: [DispenserTransaction!] @derivedFrom(field: "dispenser") } diff --git a/src/mappings/dispenser.ts b/src/mappings/dispenser.ts index 3e20388..5dc4a03 100644 --- a/src/mappings/dispenser.ts +++ b/src/mappings/dispenser.ts @@ -1,3 +1,4 @@ +import { log } from '@graphprotocol/graph-ts' import { DispenserActivated, DispenserAllowedSwapperChanged, @@ -6,13 +7,34 @@ import { TokensDispensed } from '../@types/Dispenser/Dispenser' import { DispenserCreated } from '../@types/ERC721Factory/ERC721Factory' -import { DispenserTransaction } from '../@types/schema' +import { Dispenser, DispenserTransaction } from '../@types/schema' import { decimal } from './utils/constants' -import { createDispenser, getDispenser } from './utils/dispenserUtils' +import { getDispenser } from './utils/dispenserUtils' +import { weiToDecimal } from './utils/generic' +import { getToken } from './utils/tokenUtils' import { getUser } from './utils/userUtils' export function handleNewDispenser(event: DispenserCreated): void { - createDispenser(event.params.datatokenAddress.toHex()) + const dispenser = new Dispenser(event.params.datatokenAddress.toHex()) + const token = getToken(event.params.datatokenAddress.toHex()) + dispenser.token = token.id + + dispenser.owner = event.params.owner.toHexString() + dispenser.maxBalance = weiToDecimal( + event.params.maxBalance.toBigDecimal(), + token.decimals + ) + dispenser.maxTokens = weiToDecimal( + event.params.maxTokens.toBigDecimal(), + token.decimals + ) + dispenser.active = true + + dispenser.allowedSwapper = event.params.allowedSwapper.toHex() + dispenser.createdTimestamp = event.block.timestamp.toI32() + dispenser.tx = event.transaction.hash.toHex() + dispenser.block = event.block.number.toI32() + dispenser.save() } export function handleActivate(event: DispenserActivated): void { diff --git a/src/mappings/erc721Factory.ts b/src/mappings/erc721Factory.ts index c4223fb..37ba251 100644 --- a/src/mappings/erc721Factory.ts +++ b/src/mappings/erc721Factory.ts @@ -1,10 +1,13 @@ +import { log } from '@graphprotocol/graph-ts' import { NFTCreated, TokenCreated } from '../@types/ERC721Factory/ERC721Factory' import { Nft, Token } from '../@types/schema' import { decimal, integer } from './utils/constants' +import { weiToDecimal } from './utils/generic' import { getGlobalStats } from './utils/globalUtils' import { getUser } from './utils/userUtils' export function handleNftCreated(event: NFTCreated): void { + log.warning('handleNftCreated is starting', []) const nft = new Nft(event.params.newTokenAddress.toHexString()) const user = getUser(event.params.admin.toHexString()) @@ -24,6 +27,10 @@ export function handleNftCreated(event: NFTCreated): void { } export function handleNewToken(event: TokenCreated): void { + log.warning('handleNewToken {} {}', [ + event.transaction.from.toHexString(), + event.address.toHexString() + ]) const token = new Token(event.params.newTokenAddress.toHexString()) token.isDatatoken = true token.address = event.params.newTokenAddress.toHexString() @@ -31,9 +38,13 @@ export function handleNewToken(event: TokenCreated): void { token.tx = event.transaction.hash.toHex() token.block = event.block.number.toI32() + token.nft = event.params.creator.toHexString() + token.name = event.params.name + token.symbol = event.params.symbol token.decimals = 18 token.supply = decimal.ZERO + token.cap = weiToDecimal(event.params.cap.toBigDecimal(), 18) const globalStats = getGlobalStats() globalStats.datatokenCount = globalStats.datatokenCount.plus(integer.ONE) diff --git a/src/mappings/fixedRateExchange.ts b/src/mappings/fixedRateExchange.ts index 82b6a4d..2e954d1 100644 --- a/src/mappings/fixedRateExchange.ts +++ b/src/mappings/fixedRateExchange.ts @@ -1,4 +1,4 @@ -import { BigInt } from '@graphprotocol/graph-ts' +import { BigInt, log } from '@graphprotocol/graph-ts' import { ExchangeActivated, ExchangeAllowedSwapperChanged, @@ -19,20 +19,32 @@ import { getToken } from './utils/tokenUtils' import { getUser } from './utils/userUtils' export function handleExchangeCreated(event: ExchangeCreated): void { + log.warning( + 'handleExchangeCreated baseToken {} ; dataToken {} ; exchangeOwner {} ; fixedRate {}', + [ + event.params.baseToken.toHexString(), + event.params.dataToken.toHexString(), + event.params.exchangeOwner.toHexString(), + event.params.fixedRate.toBigDecimal().toString() + ] + ) const fixedRateExchange = new FixedRateExchange( event.params.exchangeId.toHexString() ) const user = getUser(event.params.exchangeOwner.toHexString()) fixedRateExchange.owner = user.id - fixedRateExchange.datatoken = event.params.dataToken.toHexString() - fixedRateExchange.baseToken = event.params.baseToken.toHexString() - // fixedRateExchange.baseTokenSymbol = getTokenSymbol(event.params.baseToken) - fixedRateExchange.active = false + fixedRateExchange.datatoken = getToken( + event.params.dataToken.toHexString() + ).id + fixedRateExchange.baseToken = getToken( + event.params.baseToken.toHexString() + ).id - fixedRateExchange.price = weiToDecimal( - event.params.fixedRate.toBigDecimal(), - BigInt.fromI32(18).toI32() - ) + fixedRateExchange.active = false + fixedRateExchange.price = event.params.fixedRate.toBigDecimal() + fixedRateExchange.createdTimestamp = event.block.timestamp.toI32() + fixedRateExchange.tx = event.transaction.hash.toHex() + fixedRateExchange.block = event.block.number.toI32() fixedRateExchange.save() } @@ -145,13 +157,6 @@ export function handleSwap(event: Swapped): void { event.params.exchangeId.toHex() ) - // reduce supply if the fixed rate is not minting tokens - if (fixedRateExchange.isMinter || fixedRateExchange.withMint) { - fixedRateExchange.supply = fixedRateExchange.supply.minus( - event.params.dataTokenSwappedAmount - ) - } - const swap = new FixedRateExchangeSwap( getUpdateOrSwapId( event.transaction.hash.toHex(), diff --git a/src/mappings/utils/dispenserUtils.ts b/src/mappings/utils/dispenserUtils.ts index 3550de8..f46b840 100644 --- a/src/mappings/utils/dispenserUtils.ts +++ b/src/mappings/utils/dispenserUtils.ts @@ -3,7 +3,7 @@ import { getToken } from './tokenUtils' export function createDispenser(address: string): Dispenser { const dispenser = new Dispenser(address) - dispenser.datatoken = getToken(address).id + dispenser.token = getToken(address).id dispenser.save() return dispenser } diff --git a/src/mappings/utils/tokenUtils.ts b/src/mappings/utils/tokenUtils.ts index b79ac2f..c3902cd 100644 --- a/src/mappings/utils/tokenUtils.ts +++ b/src/mappings/utils/tokenUtils.ts @@ -1,10 +1,11 @@ -import { Address } from '@graphprotocol/graph-ts' +import { Address, log } from '@graphprotocol/graph-ts' import { Token } from '../../@types/schema' import { ERC20 } from '../../@types/templates/ERC20Template/ERC20' import { integer } from './constants' import { getGlobalStats } from './globalUtils' export function createToken(address: string): Token { + log.debug('started creating token with address: {}', [address]) const token = new Token(address) const contract = ERC20.bind(Address.fromString(address)) token.name = contract.name() diff --git a/subgraph.rinkeby.yaml b/subgraph.rinkeby.yaml index 8fc4f7c..9d4bd94 100644 --- a/subgraph.rinkeby.yaml +++ b/subgraph.rinkeby.yaml @@ -8,9 +8,9 @@ dataSources: name: ERC721Factory network: rinkeby source: - address: '0xa15024b732A8f2146423D14209eFd074e61964F3' + address: '0xe4B39C90355899DB8f625D879B44Fa9C5Cdde550' abi: ERC721Factory - startBlock: 9759283 + startBlock: 9984045 mapping: kind: ethereum/events apiVersion: 0.0.5 @@ -30,9 +30,9 @@ dataSources: name: FixedRateExchange network: rinkeby source: - address: '0x235C9bE4D23dCbd16c1Bf89ec839cb7C452FD9e9' + address: '0x7084f7353bB7cfc92A65e7d23987Cb5D1A3Fb9b2' abi: FixedRateExchange - startBlock: 9759283 + startBlock: 9984045 mapping: kind: ethereum/events apiVersion: 0.0.5 @@ -43,6 +43,8 @@ dataSources: abis: - name: FixedRateExchange file: ./abis/FixedRateExchange.json + - name: ERC20 + file: ./abis/ERC20.json eventHandlers: - event: ExchangeCreated(indexed bytes32,indexed address,indexed address,address,uint256) handler: handleExchangeCreated @@ -62,9 +64,9 @@ dataSources: name: Dispenser network: rinkeby source: - address: '0x5FFE6649C7562F3bee1ca114c7c3316BF4B45b50' + address: '0xa8fFDd525835795C940370FB816f82a5F7F5F860' abi: Dispenser - startBlock: 9759283 + startBlock: 9984045 mapping: kind: ethereum/events apiVersion: 0.0.5 @@ -192,6 +194,4 @@ templates: - event: MetadataState(indexed address,uint8,uint256,uint256) handler: handleState - event: TokenURIUpdate(indexed address,string,uint256,uint256,uint256) - handler: handleTokenUriUpdate -features: - - nonFatalErrors + handler: handleTokenUriUpdate \ No newline at end of file diff --git a/subgraph.yaml b/subgraph.yaml index 3938ddd..4198aa8 100644 --- a/subgraph.yaml +++ b/subgraph.yaml @@ -193,5 +193,3 @@ templates: handler: handleState - event: TokenURIUpdate(indexed address,string,uint256,uint256,uint256) handler: handleTokenUriUpdate -features: - - nonFatalErrors