diff --git a/abis/0.8.28/BalanceTrackerFixedPriceToken.json b/abis/0.8.28/BalanceTrackerFixedPriceToken.json index bd035aa..8999c2b 100644 --- a/abis/0.8.28/BalanceTrackerFixedPriceToken.json +++ b/abis/0.8.28/BalanceTrackerFixedPriceToken.json @@ -17,7 +17,7 @@ }, { "internalType": "address", - "name": "_olas", + "name": "_token", "type": "address" } ], @@ -354,19 +354,6 @@ "stateMutability": "view", "type": "function" }, - { - "inputs": [], - "name": "olas", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, { "inputs": [], "name": "processPayment", @@ -409,6 +396,19 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [], + "name": "token", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "withdraw", @@ -417,8 +417,8 @@ "type": "function" } ], - "bytecode": "0x60e060405260018055348015610013575f5ffd5b50604051611510380380611510833981016040819052610032916100d0565b82826001600160a01b038216158061005157506001600160a01b038116155b1561006f5760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b03918216608052811660a05281166100a15760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b031660c052506101109050565b80516001600160a01b03811681146100cb575f5ffd5b919050565b5f5f5f606084860312156100e2575f5ffd5b6100eb846100b5565b92506100f9602085016100b5565b9150610107604085016100b5565b90509250925092565b60805160a05160c05161137561019b5f395f818160ed015281816106770152818161071401528181610cf601528181610d7e01528181610e6601528181610ef001528181610fb5015261102201525f81816101c20152610f8601525f8181610230015281816104080152818161047001528181610859015281816108c10152610b4f01526113755ff3fe6080604052600436106100d8575f3560e01c80639890220b1161007c578063b6b55f2511610057578063b6b55f2514610267578063e679803514610286578063f965a873146102b1578063fe71c424146102d0575f5ffd5b80639890220b1461020b5780639c5e95901461021f578063af4937fc14610252575f5ffd5b80636aeeffa8116100b75780636aeeffa814610178578063803551a9146101b15780638a7e698d146101e45780639003adfe146101f7575f5ffd5b806231d115146100dc57806322081c12146101395780633ccfd60b14610162575b5f5ffd5b3480156100e7575f5ffd5b5061010f7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b348015610144575f5ffd5b5061014d6102ef565b60408051928352602083019190915201610130565b34801561016d575f5ffd5b50610176610302565b005b348015610183575f5ffd5b506101a36101923660046110bb565b60026020525f908152604090205481565b604051908152602001610130565b3480156101bc575f5ffd5b5061010f7f000000000000000000000000000000000000000000000000000000000000000081565b6101766101f2366004611108565b6103af565b348015610202575f5ffd5b506101a35f5481565b348015610216575f5ffd5b5061017661058f565b34801561022a575f5ffd5b5061010f7f000000000000000000000000000000000000000000000000000000000000000081565b34801561025d575f5ffd5b506101a361271081565b348015610272575f5ffd5b50610176610281366004611211565b610619565b348015610291575f5ffd5b506101a36102a03660046110bb565b60036020525f908152604090205481565b3480156102bc575f5ffd5b5061014d6102cb3660046110bb565b610767565b3480156102db575f5ffd5b506101766102ea366004611228565b610841565b5f5f6102fa33610aa8565b915091509091565b60018054111561033e576040517f8beb9d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60026001819055335f90815260209190915260408120549081900361038f576040517f7c946ed700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b335f818152600260205260408120556103a89082610caa565b5060018055565b6001805411156103eb576040517f8beb9d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60026001553373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146104a2576040517fe56895c000000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001660248201526044015b60405180910390fd5b5f6104ab610dd2565b73ffffffffffffffffffffffffffffffffffffffff85165f90815260026020526040812054919250906104df908390611294565b90508381101561050e575f6104f482866112a7565b90506105008682610e12565b61050a9083611294565b9150505b83811015610552576040517fcf4791810000000000000000000000000000000000000000000000000000000081526004810182905260248101859052604401610499565b61055c84826112a7565b73ffffffffffffffffffffffffffffffffffffffff9095165f908152600260205260409020949094555050600180555050565b6001805411156105cb576040517f8beb9d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60026001555f80549081900361060d576040517f7c946ed700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80556103a881610f49565b335f9081526002602052604081208054839290610637908490611294565b90915550506040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018290527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906323b872dd906064016020604051808303815f875af11580156106d2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106f691906112ba565b5060405181815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169033907f5548c837ab068cf56a2c2479df0882a4922fd203edb7517321831d95078c5f629060200160405180910390a350565b6040517f6d70f7ae0000000000000000000000000000000000000000000000000000000081523360048201525f90819073ffffffffffffffffffffffffffffffffffffffff841690636d70f7ae90602401602060405180830381865afa1580156107d3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107f791906112ba565b61082f576040517f32b2baa3000000000000000000000000000000000000000000000000000000008152336004820152602401610499565b61083883610aa8565b91509150915091565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146108ee576040517fe56895c000000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166024820152604401610499565b6040517f6d99a988000000000000000000000000000000000000000000000000000000008152600481018390525f9073ffffffffffffffffffffffffffffffffffffffff861690636d99a988906024016020604051808303815f875af115801561095a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061097e91906112d9565b9050805f036109b9576040517f7c946ed700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f81831115610a10576109cc82846112a7565b73ffffffffffffffffffffffffffffffffffffffff86165f90815260026020526040812080549293508392909190610a05908490611294565b90915550610a149050565b8291505b73ffffffffffffffffffffffffffffffffffffffff86165f9081526003602052604081208054849290610a48908490611294565b90915550506040805183815260208101839052859173ffffffffffffffffffffffffffffffffffffffff8916917f7b4da18496c57421bb616b0a649b583873b6a44693d24433507fee64844970da910160405180910390a3505050505050565b5f5f600180541115610ae6576040517f8beb9d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600181905573ffffffffffffffffffffffffffffffffffffffff84165f9081526003602052604090205490811015610b4c576040517f7c946ed700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ddca3f436040518163ffffffff1660e01b81526004016020604051808303815f875af1158015610bb7573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bdb91906112d9565b9050612710610beb6001826112a7565b610bf583856112f0565b610bff9190611294565b610c099190611307565b9250610c1583836112a7565b9350821580610c22575083155b15610c59576040517f7c946ed700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825f5f828254610c699190611294565b909155505073ffffffffffffffffffffffffffffffffffffffff85165f90815260036020526040812055610c9d8585610caa565b5050600180559092909150565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303815f875af1158015610d3c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d6091906112ba565b5060405181815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169033907f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb9060200160405180910390a35050565b5f3415610e0d576040517f0f0fe74c000000000000000000000000000000000000000000000000000000008152346004820152602401610499565b505f90565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152306024830152604482018390525f917f0000000000000000000000000000000000000000000000000000000000000000909116906323b872dd906064016020604051808303815f875af1158015610eae573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ed291906112ba565b5060405182815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169033907f5548c837ab068cf56a2c2479df0882a4922fd203edb7517321831d95078c5f629060200160405180910390a350805b92915050565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303815f875af1158015610ffb573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061101f91906112ba565b507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff167fb2559daa129ad136aac2133ac6a0c75920abbef7d6663a017a94e181b13786c38260405161108891815260200190565b60405180910390a250565b803573ffffffffffffffffffffffffffffffffffffffff811681146110b6575f5ffd5b919050565b5f602082840312156110cb575f5ffd5b6110d482611093565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f5f5f6060848603121561111a575f5ffd5b61112384611093565b925060208401359150604084013567ffffffffffffffff811115611145575f5ffd5b8401601f81018613611155575f5ffd5b803567ffffffffffffffff81111561116f5761116f6110db565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff821117156111db576111db6110db565b6040528181528282016020018810156111f2575f5ffd5b816020840160208301375f602083830101528093505050509250925092565b5f60208284031215611221575f5ffd5b5035919050565b5f5f5f5f6080858703121561123b575f5ffd5b61124485611093565b935061125260208601611093565b93969395505050506040820135916060013590565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b80820180821115610f4357610f43611267565b81810381811115610f4357610f43611267565b5f602082840312156112ca575f5ffd5b815180151581146110d4575f5ffd5b5f602082840312156112e9575f5ffd5b5051919050565b8082028115828204841417610f4357610f43611267565b5f8261133a577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b50049056fea264697066735822122032889365accc91c67c9979875a49fa2cd900d0899dec1d7045dfce7c43b0a4cd64736f6c634300081c0033", - "deployedBytecode": "0x6080604052600436106100d8575f3560e01c80639890220b1161007c578063b6b55f2511610057578063b6b55f2514610267578063e679803514610286578063f965a873146102b1578063fe71c424146102d0575f5ffd5b80639890220b1461020b5780639c5e95901461021f578063af4937fc14610252575f5ffd5b80636aeeffa8116100b75780636aeeffa814610178578063803551a9146101b15780638a7e698d146101e45780639003adfe146101f7575f5ffd5b806231d115146100dc57806322081c12146101395780633ccfd60b14610162575b5f5ffd5b3480156100e7575f5ffd5b5061010f7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b348015610144575f5ffd5b5061014d6102ef565b60408051928352602083019190915201610130565b34801561016d575f5ffd5b50610176610302565b005b348015610183575f5ffd5b506101a36101923660046110bb565b60026020525f908152604090205481565b604051908152602001610130565b3480156101bc575f5ffd5b5061010f7f000000000000000000000000000000000000000000000000000000000000000081565b6101766101f2366004611108565b6103af565b348015610202575f5ffd5b506101a35f5481565b348015610216575f5ffd5b5061017661058f565b34801561022a575f5ffd5b5061010f7f000000000000000000000000000000000000000000000000000000000000000081565b34801561025d575f5ffd5b506101a361271081565b348015610272575f5ffd5b50610176610281366004611211565b610619565b348015610291575f5ffd5b506101a36102a03660046110bb565b60036020525f908152604090205481565b3480156102bc575f5ffd5b5061014d6102cb3660046110bb565b610767565b3480156102db575f5ffd5b506101766102ea366004611228565b610841565b5f5f6102fa33610aa8565b915091509091565b60018054111561033e576040517f8beb9d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60026001819055335f90815260209190915260408120549081900361038f576040517f7c946ed700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b335f818152600260205260408120556103a89082610caa565b5060018055565b6001805411156103eb576040517f8beb9d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60026001553373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146104a2576040517fe56895c000000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001660248201526044015b60405180910390fd5b5f6104ab610dd2565b73ffffffffffffffffffffffffffffffffffffffff85165f90815260026020526040812054919250906104df908390611294565b90508381101561050e575f6104f482866112a7565b90506105008682610e12565b61050a9083611294565b9150505b83811015610552576040517fcf4791810000000000000000000000000000000000000000000000000000000081526004810182905260248101859052604401610499565b61055c84826112a7565b73ffffffffffffffffffffffffffffffffffffffff9095165f908152600260205260409020949094555050600180555050565b6001805411156105cb576040517f8beb9d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60026001555f80549081900361060d576040517f7c946ed700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80556103a881610f49565b335f9081526002602052604081208054839290610637908490611294565b90915550506040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018290527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906323b872dd906064016020604051808303815f875af11580156106d2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106f691906112ba565b5060405181815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169033907f5548c837ab068cf56a2c2479df0882a4922fd203edb7517321831d95078c5f629060200160405180910390a350565b6040517f6d70f7ae0000000000000000000000000000000000000000000000000000000081523360048201525f90819073ffffffffffffffffffffffffffffffffffffffff841690636d70f7ae90602401602060405180830381865afa1580156107d3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107f791906112ba565b61082f576040517f32b2baa3000000000000000000000000000000000000000000000000000000008152336004820152602401610499565b61083883610aa8565b91509150915091565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146108ee576040517fe56895c000000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166024820152604401610499565b6040517f6d99a988000000000000000000000000000000000000000000000000000000008152600481018390525f9073ffffffffffffffffffffffffffffffffffffffff861690636d99a988906024016020604051808303815f875af115801561095a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061097e91906112d9565b9050805f036109b9576040517f7c946ed700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f81831115610a10576109cc82846112a7565b73ffffffffffffffffffffffffffffffffffffffff86165f90815260026020526040812080549293508392909190610a05908490611294565b90915550610a149050565b8291505b73ffffffffffffffffffffffffffffffffffffffff86165f9081526003602052604081208054849290610a48908490611294565b90915550506040805183815260208101839052859173ffffffffffffffffffffffffffffffffffffffff8916917f7b4da18496c57421bb616b0a649b583873b6a44693d24433507fee64844970da910160405180910390a3505050505050565b5f5f600180541115610ae6576040517f8beb9d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600181905573ffffffffffffffffffffffffffffffffffffffff84165f9081526003602052604090205490811015610b4c576040517f7c946ed700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ddca3f436040518163ffffffff1660e01b81526004016020604051808303815f875af1158015610bb7573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bdb91906112d9565b9050612710610beb6001826112a7565b610bf583856112f0565b610bff9190611294565b610c099190611307565b9250610c1583836112a7565b9350821580610c22575083155b15610c59576040517f7c946ed700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825f5f828254610c699190611294565b909155505073ffffffffffffffffffffffffffffffffffffffff85165f90815260036020526040812055610c9d8585610caa565b5050600180559092909150565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303815f875af1158015610d3c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d6091906112ba565b5060405181815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169033907f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb9060200160405180910390a35050565b5f3415610e0d576040517f0f0fe74c000000000000000000000000000000000000000000000000000000008152346004820152602401610499565b505f90565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152306024830152604482018390525f917f0000000000000000000000000000000000000000000000000000000000000000909116906323b872dd906064016020604051808303815f875af1158015610eae573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ed291906112ba565b5060405182815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169033907f5548c837ab068cf56a2c2479df0882a4922fd203edb7517321831d95078c5f629060200160405180910390a350805b92915050565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303815f875af1158015610ffb573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061101f91906112ba565b507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff167fb2559daa129ad136aac2133ac6a0c75920abbef7d6663a017a94e181b13786c38260405161108891815260200190565b60405180910390a250565b803573ffffffffffffffffffffffffffffffffffffffff811681146110b6575f5ffd5b919050565b5f602082840312156110cb575f5ffd5b6110d482611093565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f5f5f6060848603121561111a575f5ffd5b61112384611093565b925060208401359150604084013567ffffffffffffffff811115611145575f5ffd5b8401601f81018613611155575f5ffd5b803567ffffffffffffffff81111561116f5761116f6110db565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff821117156111db576111db6110db565b6040528181528282016020018810156111f2575f5ffd5b816020840160208301375f602083830101528093505050509250925092565b5f60208284031215611221575f5ffd5b5035919050565b5f5f5f5f6080858703121561123b575f5ffd5b61124485611093565b935061125260208601611093565b93969395505050506040820135916060013590565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b80820180821115610f4357610f43611267565b81810381811115610f4357610f43611267565b5f602082840312156112ca575f5ffd5b815180151581146110d4575f5ffd5b5f602082840312156112e9575f5ffd5b5051919050565b8082028115828204841417610f4357610f43611267565b5f8261133a577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b50049056fea264697066735822122032889365accc91c67c9979875a49fa2cd900d0899dec1d7045dfce7c43b0a4cd64736f6c634300081c0033", + "bytecode": "0x60e060405260018055348015610013575f5ffd5b50604051611512380380611512833981016040819052610032916100d0565b82826001600160a01b038216158061005157506001600160a01b038116155b1561006f5760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b03918216608052811660a05281166100a15760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b031660c052506101109050565b80516001600160a01b03811681146100cb575f5ffd5b919050565b5f5f5f606084860312156100e2575f5ffd5b6100eb846100b5565b92506100f9602085016100b5565b9150610107604085016100b5565b90509250925092565b60805160a05160c05161137661019c5f395f81816102af015281816106780152818161071501528181610cf701528181610d7f01528181610e6701528181610ef101528181610fb6015261102301525f818161016b0152610f8701525f81816101fe01528181610409015281816104710152818161085a015281816108c20152610b5001526113765ff3fe6080604052600436106100d9575f3560e01c80639c5e95901161007c578063e679803511610057578063e679803514610254578063f965a8731461027f578063fc0c546a1461029e578063fe71c424146102d1575f5ffd5b80639c5e9590146101ed578063af4937fc14610220578063b6b55f2514610235575f5ffd5b8063803551a9116100b7578063803551a91461015a5780638a7e698d146101b25780639003adfe146101c55780639890220b146101d9575f5ffd5b806322081c12146100dd5780633ccfd60b1461010b5780636aeeffa814610121575b5f5ffd5b3480156100e8575f5ffd5b506100f16102f0565b604080519283526020830191909152015b60405180910390f35b348015610116575f5ffd5b5061011f610303565b005b34801561012c575f5ffd5b5061014c61013b3660046110bc565b60026020525f908152604090205481565b604051908152602001610102565b348015610165575f5ffd5b5061018d7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610102565b61011f6101c0366004611109565b6103b0565b3480156101d0575f5ffd5b5061014c5f5481565b3480156101e4575f5ffd5b5061011f610590565b3480156101f8575f5ffd5b5061018d7f000000000000000000000000000000000000000000000000000000000000000081565b34801561022b575f5ffd5b5061014c61271081565b348015610240575f5ffd5b5061011f61024f366004611212565b61061a565b34801561025f575f5ffd5b5061014c61026e3660046110bc565b60036020525f908152604090205481565b34801561028a575f5ffd5b506100f16102993660046110bc565b610768565b3480156102a9575f5ffd5b5061018d7f000000000000000000000000000000000000000000000000000000000000000081565b3480156102dc575f5ffd5b5061011f6102eb366004611229565b610842565b5f5f6102fb33610aa9565b915091509091565b60018054111561033f576040517f8beb9d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60026001819055335f908152602091909152604081205490819003610390576040517f7c946ed700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b335f818152600260205260408120556103a99082610cab565b5060018055565b6001805411156103ec576040517f8beb9d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60026001553373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146104a3576040517fe56895c000000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001660248201526044015b60405180910390fd5b5f6104ac610dd3565b73ffffffffffffffffffffffffffffffffffffffff85165f90815260026020526040812054919250906104e0908390611295565b90508381101561050f575f6104f582866112a8565b90506105018682610e13565b61050b9083611295565b9150505b83811015610553576040517fcf479181000000000000000000000000000000000000000000000000000000008152600481018290526024810185905260440161049a565b61055d84826112a8565b73ffffffffffffffffffffffffffffffffffffffff9095165f908152600260205260409020949094555050600180555050565b6001805411156105cc576040517f8beb9d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60026001555f80549081900361060e576040517f7c946ed700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80556103a981610f4a565b335f9081526002602052604081208054839290610638908490611295565b90915550506040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018290527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906323b872dd906064016020604051808303815f875af11580156106d3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106f791906112bb565b5060405181815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169033907f5548c837ab068cf56a2c2479df0882a4922fd203edb7517321831d95078c5f629060200160405180910390a350565b6040517f6d70f7ae0000000000000000000000000000000000000000000000000000000081523360048201525f90819073ffffffffffffffffffffffffffffffffffffffff841690636d70f7ae90602401602060405180830381865afa1580156107d4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107f891906112bb565b610830576040517f32b2baa300000000000000000000000000000000000000000000000000000000815233600482015260240161049a565b61083983610aa9565b91509150915091565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146108ef576040517fe56895c000000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016602482015260440161049a565b6040517f6d99a988000000000000000000000000000000000000000000000000000000008152600481018390525f9073ffffffffffffffffffffffffffffffffffffffff861690636d99a988906024016020604051808303815f875af115801561095b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061097f91906112da565b9050805f036109ba576040517f7c946ed700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f81831115610a11576109cd82846112a8565b73ffffffffffffffffffffffffffffffffffffffff86165f90815260026020526040812080549293508392909190610a06908490611295565b90915550610a159050565b8291505b73ffffffffffffffffffffffffffffffffffffffff86165f9081526003602052604081208054849290610a49908490611295565b90915550506040805183815260208101839052859173ffffffffffffffffffffffffffffffffffffffff8916917f7b4da18496c57421bb616b0a649b583873b6a44693d24433507fee64844970da910160405180910390a3505050505050565b5f5f600180541115610ae7576040517f8beb9d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600181905573ffffffffffffffffffffffffffffffffffffffff84165f9081526003602052604090205490811015610b4d576040517f7c946ed700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ddca3f436040518163ffffffff1660e01b81526004016020604051808303815f875af1158015610bb8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bdc91906112da565b9050612710610bec6001826112a8565b610bf683856112f1565b610c009190611295565b610c0a9190611308565b9250610c1683836112a8565b9350821580610c23575083155b15610c5a576040517f7c946ed700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825f5f828254610c6a9190611295565b909155505073ffffffffffffffffffffffffffffffffffffffff85165f90815260036020526040812055610c9e8585610cab565b5050600180559092909150565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303815f875af1158015610d3d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d6191906112bb565b5060405181815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169033907f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb9060200160405180910390a35050565b5f3415610e0e576040517f0f0fe74c00000000000000000000000000000000000000000000000000000000815234600482015260240161049a565b505f90565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152306024830152604482018390525f917f0000000000000000000000000000000000000000000000000000000000000000909116906323b872dd906064016020604051808303815f875af1158015610eaf573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ed391906112bb565b5060405182815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169033907f5548c837ab068cf56a2c2479df0882a4922fd203edb7517321831d95078c5f629060200160405180910390a350805b92915050565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303815f875af1158015610ffc573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061102091906112bb565b507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff167fb2559daa129ad136aac2133ac6a0c75920abbef7d6663a017a94e181b13786c38260405161108991815260200190565b60405180910390a250565b803573ffffffffffffffffffffffffffffffffffffffff811681146110b7575f5ffd5b919050565b5f602082840312156110cc575f5ffd5b6110d582611094565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f5f5f6060848603121561111b575f5ffd5b61112484611094565b925060208401359150604084013567ffffffffffffffff811115611146575f5ffd5b8401601f81018613611156575f5ffd5b803567ffffffffffffffff811115611170576111706110dc565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff821117156111dc576111dc6110dc565b6040528181528282016020018810156111f3575f5ffd5b816020840160208301375f602083830101528093505050509250925092565b5f60208284031215611222575f5ffd5b5035919050565b5f5f5f5f6080858703121561123c575f5ffd5b61124585611094565b935061125360208601611094565b93969395505050506040820135916060013590565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b80820180821115610f4457610f44611268565b81810381811115610f4457610f44611268565b5f602082840312156112cb575f5ffd5b815180151581146110d5575f5ffd5b5f602082840312156112ea575f5ffd5b5051919050565b8082028115828204841417610f4457610f44611268565b5f8261133b577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b50049056fea2646970667358221220372dcbd45d486c03ec97baed420737c534306f31c83f71d908fb27040248b33d64736f6c634300081c0033", + "deployedBytecode": "0x6080604052600436106100d9575f3560e01c80639c5e95901161007c578063e679803511610057578063e679803514610254578063f965a8731461027f578063fc0c546a1461029e578063fe71c424146102d1575f5ffd5b80639c5e9590146101ed578063af4937fc14610220578063b6b55f2514610235575f5ffd5b8063803551a9116100b7578063803551a91461015a5780638a7e698d146101b25780639003adfe146101c55780639890220b146101d9575f5ffd5b806322081c12146100dd5780633ccfd60b1461010b5780636aeeffa814610121575b5f5ffd5b3480156100e8575f5ffd5b506100f16102f0565b604080519283526020830191909152015b60405180910390f35b348015610116575f5ffd5b5061011f610303565b005b34801561012c575f5ffd5b5061014c61013b3660046110bc565b60026020525f908152604090205481565b604051908152602001610102565b348015610165575f5ffd5b5061018d7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610102565b61011f6101c0366004611109565b6103b0565b3480156101d0575f5ffd5b5061014c5f5481565b3480156101e4575f5ffd5b5061011f610590565b3480156101f8575f5ffd5b5061018d7f000000000000000000000000000000000000000000000000000000000000000081565b34801561022b575f5ffd5b5061014c61271081565b348015610240575f5ffd5b5061011f61024f366004611212565b61061a565b34801561025f575f5ffd5b5061014c61026e3660046110bc565b60036020525f908152604090205481565b34801561028a575f5ffd5b506100f16102993660046110bc565b610768565b3480156102a9575f5ffd5b5061018d7f000000000000000000000000000000000000000000000000000000000000000081565b3480156102dc575f5ffd5b5061011f6102eb366004611229565b610842565b5f5f6102fb33610aa9565b915091509091565b60018054111561033f576040517f8beb9d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60026001819055335f908152602091909152604081205490819003610390576040517f7c946ed700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b335f818152600260205260408120556103a99082610cab565b5060018055565b6001805411156103ec576040517f8beb9d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60026001553373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146104a3576040517fe56895c000000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001660248201526044015b60405180910390fd5b5f6104ac610dd3565b73ffffffffffffffffffffffffffffffffffffffff85165f90815260026020526040812054919250906104e0908390611295565b90508381101561050f575f6104f582866112a8565b90506105018682610e13565b61050b9083611295565b9150505b83811015610553576040517fcf479181000000000000000000000000000000000000000000000000000000008152600481018290526024810185905260440161049a565b61055d84826112a8565b73ffffffffffffffffffffffffffffffffffffffff9095165f908152600260205260409020949094555050600180555050565b6001805411156105cc576040517f8beb9d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60026001555f80549081900361060e576040517f7c946ed700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80556103a981610f4a565b335f9081526002602052604081208054839290610638908490611295565b90915550506040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018290527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906323b872dd906064016020604051808303815f875af11580156106d3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106f791906112bb565b5060405181815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169033907f5548c837ab068cf56a2c2479df0882a4922fd203edb7517321831d95078c5f629060200160405180910390a350565b6040517f6d70f7ae0000000000000000000000000000000000000000000000000000000081523360048201525f90819073ffffffffffffffffffffffffffffffffffffffff841690636d70f7ae90602401602060405180830381865afa1580156107d4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107f891906112bb565b610830576040517f32b2baa300000000000000000000000000000000000000000000000000000000815233600482015260240161049a565b61083983610aa9565b91509150915091565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146108ef576040517fe56895c000000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016602482015260440161049a565b6040517f6d99a988000000000000000000000000000000000000000000000000000000008152600481018390525f9073ffffffffffffffffffffffffffffffffffffffff861690636d99a988906024016020604051808303815f875af115801561095b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061097f91906112da565b9050805f036109ba576040517f7c946ed700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f81831115610a11576109cd82846112a8565b73ffffffffffffffffffffffffffffffffffffffff86165f90815260026020526040812080549293508392909190610a06908490611295565b90915550610a159050565b8291505b73ffffffffffffffffffffffffffffffffffffffff86165f9081526003602052604081208054849290610a49908490611295565b90915550506040805183815260208101839052859173ffffffffffffffffffffffffffffffffffffffff8916917f7b4da18496c57421bb616b0a649b583873b6a44693d24433507fee64844970da910160405180910390a3505050505050565b5f5f600180541115610ae7576040517f8beb9d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600181905573ffffffffffffffffffffffffffffffffffffffff84165f9081526003602052604090205490811015610b4d576040517f7c946ed700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ddca3f436040518163ffffffff1660e01b81526004016020604051808303815f875af1158015610bb8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bdc91906112da565b9050612710610bec6001826112a8565b610bf683856112f1565b610c009190611295565b610c0a9190611308565b9250610c1683836112a8565b9350821580610c23575083155b15610c5a576040517f7c946ed700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825f5f828254610c6a9190611295565b909155505073ffffffffffffffffffffffffffffffffffffffff85165f90815260036020526040812055610c9e8585610cab565b5050600180559092909150565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303815f875af1158015610d3d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d6191906112bb565b5060405181815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169033907f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb9060200160405180910390a35050565b5f3415610e0e576040517f0f0fe74c00000000000000000000000000000000000000000000000000000000815234600482015260240161049a565b505f90565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152306024830152604482018390525f917f0000000000000000000000000000000000000000000000000000000000000000909116906323b872dd906064016020604051808303815f875af1158015610eaf573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ed391906112bb565b5060405182815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169033907f5548c837ab068cf56a2c2479df0882a4922fd203edb7517321831d95078c5f629060200160405180910390a350805b92915050565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303815f875af1158015610ffc573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061102091906112bb565b507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff167fb2559daa129ad136aac2133ac6a0c75920abbef7d6663a017a94e181b13786c38260405161108991815260200190565b60405180910390a250565b803573ffffffffffffffffffffffffffffffffffffffff811681146110b7575f5ffd5b919050565b5f602082840312156110cc575f5ffd5b6110d582611094565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f5f5f6060848603121561111b575f5ffd5b61112484611094565b925060208401359150604084013567ffffffffffffffff811115611146575f5ffd5b8401601f81018613611156575f5ffd5b803567ffffffffffffffff811115611170576111706110dc565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff821117156111dc576111dc6110dc565b6040528181528282016020018810156111f3575f5ffd5b816020840160208301375f602083830101528093505050509250925092565b5f60208284031215611222575f5ffd5b5035919050565b5f5f5f5f6080858703121561123c575f5ffd5b61124585611094565b935061125360208601611094565b93969395505050506040820135916060013590565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b80820180821115610f4457610f44611268565b81810381811115610f4457610f44611268565b5f602082840312156112cb575f5ffd5b815180151581146110d5575f5ffd5b5f602082840312156112ea575f5ffd5b5051919050565b8082028115828204841417610f4457610f44611268565b5f8261133b577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b50049056fea2646970667358221220372dcbd45d486c03ec97baed420737c534306f31c83f71d908fb27040248b33d64736f6c634300081c0033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/contracts/MechFixedPriceBase.sol b/contracts/MechFixedPriceBase.sol new file mode 100644 index 0000000..4a489f8 --- /dev/null +++ b/contracts/MechFixedPriceBase.sol @@ -0,0 +1,30 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.28; + +import {OlasMech} from "./OlasMech.sol"; + +/// @title MechFixedPriceBase - Smart contract for OlasMech that accepts a fixed price payment for services. +abstract contract MechFixedPriceBase is OlasMech { + /// @dev MechFixedPriceBase constructor. + /// @param _mechMarketplace Mech marketplace address. + /// @param _serviceRegistry Address of the token contract. + /// @param _serviceId Service Id. + /// @param _maxDeliveryRate The maximum delivery rate. + /// @param _paymentType Payment type. + constructor(address _mechMarketplace, address _serviceRegistry, uint256 _serviceId, uint256 _maxDeliveryRate, bytes32 _paymentType) + OlasMech(_mechMarketplace, _serviceRegistry, _serviceId, _maxDeliveryRate, _paymentType) + {} + + /// @dev Performs actions before the delivery of a request. + /// @param data Self-descriptive opaque data-blob. + /// @return requestData Data for the request processing. + function _preDeliver(address, uint256, bytes memory data) internal virtual override returns (bytes memory requestData) { + requestData = data; + } + + /// @dev Gets finalized delivery rate for a request Id. + /// @return Finalized delivery rate. + function getFinalizedDeliveryRate(uint256) external virtual override returns (uint256) { + return maxDeliveryRate; + } +} diff --git a/contracts/mechs/native/MechFixedPriceNative.sol b/contracts/mechs/native/MechFixedPriceNative.sol index a87f6b5..b5d65b0 100644 --- a/contracts/mechs/native/MechFixedPriceNative.sol +++ b/contracts/mechs/native/MechFixedPriceNative.sol @@ -1,32 +1,19 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.28; -import {OlasMech} from "../../OlasMech.sol"; +import {MechFixedPriceBase} from "../../MechFixedPriceBase.sol"; /// @title MechFixedPriceNative - Smart contract for OlasMech that accepts a fixed price payment for services in native token. -contract MechFixedPriceNative is OlasMech { +contract MechFixedPriceNative is MechFixedPriceBase { // keccak256(FixedPriceNative) = ba699a34be8fe0e7725e93dcbce1701b0211a8ca61330aaeb8a05bf2ec7abed1 bytes32 public constant PAYMENT_TYPE = 0xba699a34be8fe0e7725e93dcbce1701b0211a8ca61330aaeb8a05bf2ec7abed1; - /// @dev AgentMech constructor. + /// @dev MechFixedPriceNative constructor. /// @param _mechMarketplace Mech marketplace address. /// @param _serviceRegistry Address of the token contract. /// @param _serviceId Service Id. /// @param _maxDeliveryRate The maximum delivery rate. constructor(address _mechMarketplace, address _serviceRegistry, uint256 _serviceId, uint256 _maxDeliveryRate) - OlasMech(_mechMarketplace, _serviceRegistry, _serviceId, _maxDeliveryRate, PAYMENT_TYPE) + MechFixedPriceBase(_mechMarketplace, _serviceRegistry, _serviceId, _maxDeliveryRate, PAYMENT_TYPE) {} - - /// @dev Performs actions before the delivery of a request. - /// @param data Self-descriptive opaque data-blob. - /// @return requestData Data for the request processing. - function _preDeliver(address, uint256, bytes memory data) internal virtual override returns (bytes memory requestData) { - requestData = data; - } - - /// @dev Gets finalized delivery rate for a request Id. - /// @return Finalized delivery rate. - function getFinalizedDeliveryRate(uint256) external virtual override returns (uint256) { - return maxDeliveryRate; - } } diff --git a/contracts/mechs/nevermined/MechNvmSubscription.sol b/contracts/mechs/nevermined/MechNvmSubscription.sol index d943e5e..1329209 100644 --- a/contracts/mechs/nevermined/MechNvmSubscription.sol +++ b/contracts/mechs/nevermined/MechNvmSubscription.sol @@ -34,17 +34,12 @@ contract MechNvmSubscription is OlasMech { // Mapping for requestId => finalized delivery rates mapping(uint256 => uint256) public mapRequestIdFinalizedRates; - /// @dev AgentMechSubscription constructor. + /// @dev MechNvmSubscription constructor. /// @param _mechMarketplace Mech marketplace address. /// @param _serviceRegistry Address of the token contract. /// @param _serviceId Service Id. /// @param _maxDeliveryRate The maximum delivery rate. - constructor( - address _mechMarketplace, - address _serviceRegistry, - uint256 _serviceId, - uint256 _maxDeliveryRate - ) + constructor(address _mechMarketplace, address _serviceRegistry, uint256 _serviceId,uint256 _maxDeliveryRate) OlasMech(_mechMarketplace, _serviceRegistry, _serviceId, _maxDeliveryRate, PAYMENT_TYPE) {} diff --git a/contracts/mechs/token/BalanceTrackerFixedPriceToken.sol b/contracts/mechs/token/BalanceTrackerFixedPriceToken.sol index f583206..528993c 100644 --- a/contracts/mechs/token/BalanceTrackerFixedPriceToken.sol +++ b/contracts/mechs/token/BalanceTrackerFixedPriceToken.sol @@ -24,31 +24,31 @@ interface IToken { error NoDepositAllowed(uint256 amount); contract BalanceTrackerFixedPriceToken is BalanceTrackerFixedPriceBase { - // OLAS token address - address public immutable olas; + // Token address + address public immutable token; /// @dev BalanceTrackerFixedPrice constructor. /// @param _mechMarketplace Mech marketplace address. /// @param _buyBackBurner Buy back burner address. - /// @param _olas OLAS token address. - constructor(address _mechMarketplace, address _buyBackBurner, address _olas) + /// @param _token Token address. + constructor(address _mechMarketplace, address _buyBackBurner, address _token) BalanceTrackerFixedPriceBase(_mechMarketplace, _buyBackBurner) { // Check for zero address - if (_olas == address(0)) { + if (_token == address(0)) { revert ZeroAddress(); } - olas = _olas; + token = _token; } /// @dev Drains specified amount. /// @param amount Token amount. function _drain(uint256 amount) internal virtual override { // Transfer to Buy back burner - IToken(olas).transfer(buyBackBurner, amount); + IToken(token).transfer(buyBackBurner, amount); - emit Drained(olas, amount); + emit Drained(token, amount); } /// @dev Gets native token value or restricts receiving one. @@ -68,9 +68,9 @@ contract BalanceTrackerFixedPriceToken is BalanceTrackerFixedPriceBase { /// @return Received amount. function _getRequiredFunds(address requester, uint256 amount) internal virtual override returns (uint256) { // Get tokens from requester - IToken(olas).transferFrom(requester, address(this), amount); + IToken(token).transferFrom(requester, address(this), amount); - emit Deposit(msg.sender, olas, amount); + emit Deposit(msg.sender, token, amount); return amount; } @@ -80,9 +80,9 @@ contract BalanceTrackerFixedPriceToken is BalanceTrackerFixedPriceBase { /// @param amount Token amount. function _withdraw(address account, uint256 amount) internal virtual override { // Transfer tokens - IToken(olas).transfer(account, amount); + IToken(token).transfer(account, amount); - emit Withdraw(msg.sender, olas, amount); + emit Withdraw(msg.sender, token, amount); } /// @dev Deposits token funds for requester. @@ -92,8 +92,8 @@ contract BalanceTrackerFixedPriceToken is BalanceTrackerFixedPriceBase { mapRequesterBalances[msg.sender] += amount; // Get tokens - IToken(olas).transferFrom(msg.sender, address(this), amount); + IToken(token).transferFrom(msg.sender, address(this), amount); - emit Deposit(msg.sender, olas, amount); + emit Deposit(msg.sender, token, amount); } } \ No newline at end of file diff --git a/contracts/mechs/token/MechFixedPriceToken.sol b/contracts/mechs/token/MechFixedPriceToken.sol index a94ed0d..21328b2 100644 --- a/contracts/mechs/token/MechFixedPriceToken.sol +++ b/contracts/mechs/token/MechFixedPriceToken.sol @@ -1,32 +1,19 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.28; -import {OlasMech} from "../../OlasMech.sol"; +import {MechFixedPriceBase} from "../../MechFixedPriceBase.sol"; /// @title MechFixedPriceToken - Smart contract for OlasMech that accepts a fixed price payment for services in native token. -contract MechFixedPriceToken is OlasMech { +contract MechFixedPriceToken is MechFixedPriceBase { // keccak256(FixedPriceToken) = 3679d66ef546e66ce9057c4a052f317b135bc8e8c509638f7966edfd4fcf45e9 bytes32 public constant PAYMENT_TYPE = 0x3679d66ef546e66ce9057c4a052f317b135bc8e8c509638f7966edfd4fcf45e9; - /// @dev AgentMech constructor. + /// @dev MechFixedPriceToken constructor. /// @param _mechMarketplace Mech marketplace address. /// @param _serviceRegistry Address of the token contract. /// @param _serviceId Service Id. /// @param _maxDeliveryRate The maximum delivery rate. constructor(address _mechMarketplace, address _serviceRegistry, uint256 _serviceId, uint256 _maxDeliveryRate) - OlasMech(_mechMarketplace, _serviceRegistry, _serviceId, _maxDeliveryRate, PAYMENT_TYPE) + MechFixedPriceBase(_mechMarketplace, _serviceRegistry, _serviceId, _maxDeliveryRate, PAYMENT_TYPE) {} - - /// @dev Performs actions before the delivery of a request. - /// @param data Self-descriptive opaque data-blob. - /// @return requestData Data for the request processing. - function _preDeliver(address, uint256, bytes memory data) internal virtual override returns (bytes memory requestData) { - requestData = data; - } - - /// @dev Gets finalized delivery rate for a request Id. - /// @return Finalized delivery rate. - function getFinalizedDeliveryRate(uint256) external virtual override returns (uint256) { - return maxDeliveryRate; - } }