craft-nft

A standalone NFT implementation for real-world arts and crafts assets
Log | Files | Refs | README

commit 9a8f4ffa6583a7958b703ab52e1472ca84c77046
parent 9ae9b02d083d81ea8baf36868c50a24d5f292de0
Author: lash <dev@holbrook.no>
Date:   Wed, 15 Feb 2023 06:23:52 +0000

Token URI for batch token ids

Diffstat:
Mjs/contract/CraftNFT.bin | 4++--
Mpython/CHANGELOG | 1+
Mpython/craft_nft/data/CraftNFT.bin | 4++--
Mpython/tests/test_numbered.py | 5+++--
Mpython/tests/test_uri.py | 23+++++++++++++++++++++++
Msolidity/CraftNFT.sol | 4++++
6 files changed, 35 insertions(+), 6 deletions(-)

diff --git a/js/contract/CraftNFT.bin b/js/contract/CraftNFT.bin @@ -1 +1 @@ -60806040523480156200001157600080fd5b506040516200434938038062004349833981810160405281019062000037919062000279565b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060098190555082600690816200008f919062000564565b508160079081620000a1919062000564565b505050506200064b565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200011482620000c9565b810181811067ffffffffffffffff82111715620001365762000135620000da565b5b80604052505050565b60006200014b620000ab565b905062000159828262000109565b919050565b600067ffffffffffffffff8211156200017c576200017b620000da565b5b6200018782620000c9565b9050602081019050919050565b60005b83811015620001b457808201518184015260208101905062000197565b60008484015250505050565b6000620001d7620001d1846200015e565b6200013f565b905082815260208101848484011115620001f657620001f5620000c4565b5b6200020384828562000194565b509392505050565b600082601f830112620002235762000222620000bf565b5b815162000235848260208601620001c0565b91505092915050565b6000819050919050565b62000253816200023e565b81146200025f57600080fd5b50565b600081519050620002738162000248565b92915050565b600080600060608486031215620002955762000294620000b5565b5b600084015167ffffffffffffffff811115620002b657620002b5620000ba565b5b620002c4868287016200020b565b935050602084015167ffffffffffffffff811115620002e857620002e7620000ba565b5b620002f6868287016200020b565b9250506040620003098682870162000262565b9150509250925092565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200036657607f821691505b6020821081036200037c576200037b6200031e565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b60008160020a8302905092915050565b600060088302620003e97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620003a7565b620003f58683620003a7565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620004426200043c62000436846200040d565b62000417565b6200040d565b9050919050565b6000819050919050565b6200045e8362000421565b620004766200046d8262000449565b848454620003b7565b825550505050565b600090565b6200048d6200047e565b6200049a81848462000453565b505050565b5b81811015620004c257620004b660008262000483565b600181019050620004a0565b5050565b601f8211156200051157620004db8162000382565b620004e68462000397565b81016020851015620004f6578190505b6200050e620005058562000397565b8301826200049f565b50505b505050565b60008160020a8304905092915050565b6000620005396000198460080262000516565b1980831691505092915050565b600062000554838362000526565b9150826002028217905092915050565b6200056f8262000313565b67ffffffffffffffff8111156200058b576200058a620000da565b5b6200059782546200034d565b620005a4828285620004c6565b600060209050601f831160018114620005dc5760008415620005c7578287015190505b620005d3858262000546565b86555062000643565b601f198416620005ec8662000382565b60005b828110156200061657848901518255600182019150602085019450602081019050620005ef565b8683101562000636578489015162000632601f89168262000526565b8355505b6001600288020188555050505b505050505050565b613cee806200065b6000396000f3fe6080604052600436106101df576000357c01000000000000000000000000000000000000000000000000000000009004806369e85c7111610114578063b242e534116100b2578063d824ee4f11610081578063d824ee4f146106e4578063e985e9c514610721578063f117e1731461075e578063f9613ab21461079b576101df565b8063b242e53414610611578063b88d4fde1461064e578063c87b56dd1461066a578063c9796c39146106a7576101df565b806395d89b41116100ee57806395d89b4114610555578063a22cb46514610580578063adf288df146105a9578063b1a6afd3146105e6576101df565b806369e85c71146104b057806370a08231146104ed5780638da5cb5b1461052a576101df565b806340c84b0e116101815780634d03546a1161015b5780634d03546a146103ba5780634f64b2be146103f7578063559f5dc9146104345780636352211e14610473576101df565b806340c84b0e1461034a57806342842e0e1461037557806349f2553a14610391576101df565b806318160ddd116101bd57806318160ddd1461028957806323b872dd146102b457806324e0febc146102d05780633fd2f5931461030d576101df565b806301ffc9a7146101e457806306fdde0314610221578063081812fc1461024c575b600080fd5b3480156101f057600080fd5b5061020b60048036038101906102069190612e48565b6107d8565b6040516102189190612e90565b60405180910390f35b34801561022d57600080fd5b5061023661092c565b6040516102439190612f3b565b60405180910390f35b34801561025857600080fd5b50610273600480360381019061026e9190612f93565b6109ba565b6040516102809190613001565b60405180910390f35b34801561029557600080fd5b5061029e6109f7565b6040516102ab919061302b565b60405180910390f35b6102ce60048036038101906102c99190613072565b610a01565b005b3480156102dc57600080fd5b506102f760048036038101906102f291906130fb565b610a6c565b6040516103049190613137565b60405180910390f35b34801561031957600080fd5b50610334600480360381019061032f91906130fb565b610a84565b60405161034191906131a7565b60405180910390f35b34801561035657600080fd5b5061035f610de3565b60405161036c91906131a7565b60405180910390f35b61038f600480360381019061038a9190613072565b610e71565b005b34801561039d57600080fd5b506103b860048036038101906103b391906132fe565b610edc565b005b3480156103c657600080fd5b506103e160048036038101906103dc9190613385565b6111f4565b6040516103ee9190612e90565b60405180910390f35b34801561040357600080fd5b5061041e60048036038101906104199190612f93565b61147e565b60405161042b9190613137565b60405180910390f35b34801561044057600080fd5b5061045b600480360381019061045691906133c5565b6114a2565b60405161046a93929190613414565b60405180910390f35b34801561047f57600080fd5b5061049a60048036038101906104959190612f93565b611516565b6040516104a79190613001565b60405180910390f35b3480156104bc57600080fd5b506104d760048036038101906104d291906130fb565b611552565b6040516104e49190612f3b565b60405180910390f35b3480156104f957600080fd5b50610514600480360381019061050f919061344b565b61176b565b604051610521919061302b565b60405180910390f35b34801561053657600080fd5b5061053f6117b4565b60405161054c9190613001565b60405180910390f35b34801561056157600080fd5b5061056a6117d8565b6040516105779190612f3b565b60405180910390f35b34801561058c57600080fd5b506105a760048036038101906105a291906134a4565b611866565b005b3480156105b557600080fd5b506105d060048036038101906105cb91906134e4565b611b08565b6040516105dd9190613137565b60405180910390f35b3480156105f257600080fd5b506105fb611d26565b6040516106089190613137565b60405180910390f35b34801561061d57600080fd5b50610638600480360381019061063391906134a4565b611d2c565b6040516106459190612e90565b60405180910390f35b610668600480360381019061066391906135c5565b611e0d565b005b34801561067657600080fd5b50610691600480360381019061068c9190612f93565b611ee8565b60405161069e9190612f3b565b60405180910390f35b3480156106b357600080fd5b506106ce60048036038101906106c991906130fb565b611f29565b6040516106db9190612f3b565b60405180910390f35b3480156106f057600080fd5b5061070b60048036038101906107069190613682565b612323565b6040516107189190613137565b60405180910390f35b34801561072d57600080fd5b50610748600480360381019061074391906136d5565b6124d6565b6040516107559190612e90565b60405180910390f35b34801561076a57600080fd5b5061078560048036038101906107809190613715565b61256e565b6040516107929190613137565b60405180910390f35b3480156107a757600080fd5b506107c260048036038101906107bd91906130fb565b612673565b6040516107cf9190613137565b60405180910390f35b60006380ac58cd7c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19160361082c5760019050610927565b635b5e139f7c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19160361087e5760019050610927565b63449a52f87c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916036108d05760019050610927565b6301ffc9a77c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916036109225760019050610927565b600090505b919050565b60068054610939906137ab565b80601f0160208091040260200160405190810160405280929190818152602001828054610965906137ab565b80156109b25780601f10610987576101008083540402835291602001916109b2565b820191906000526020600020905b81548152906001019060200180831161099557829003601f168201915b505050505081565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600854905090565b610a0c83838361271f565b808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b60036020528060005260406000206000915090505481565b606080600080604067ffffffffffffffff811115610aa557610aa46131d3565b5b6040519080825280601f01601f191660200182016040528015610ad75781602001600182028036833780820191505090505b5092506000905060005b6020811015610dd757600460f0878360208110610b0157610b006137dc565b5b1a7f0100000000000000000000000000000000000000000000000000000000000000027f010000000000000000000000000000000000000000000000000000000000000090041660ff16908060020a82049150509250600a8360ff161015610bd957603083610b709190613847565b7f010000000000000000000000000000000000000000000000000000000000000002848381518110610ba557610ba46137dc565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350610c4b565b605783610be69190613847565b7f010000000000000000000000000000000000000000000000000000000000000002848381518110610c1b57610c1a6137dc565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505b600f868260208110610c6057610c5f6137dc565b5b1a7f0100000000000000000000000000000000000000000000000000000000000000027f01000000000000000000000000000000000000000000000000000000000000009004169250600a8360ff161015610d3757603083610cc29190613847565b7f01000000000000000000000000000000000000000000000000000000000000000284600184610cf2919061387c565b81518110610d0357610d026137dc565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350610db5565b605783610d449190613847565b7f01000000000000000000000000000000000000000000000000000000000000000284600184610d74919061387c565b81518110610d8557610d846137dc565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505b600282610dc2919061387c565b91508080610dcf906138b0565b915050610ae1565b50829350505050919050565b600a8054610df0906137ab565b80601f0160208091040260200160405190810160405280929190818152602001828054610e1c906137ab565b8015610e695780601f10610e3e57610100808354040283529160200191610e69565b820191906000526020600020905b815481529060010190602001808311610e4c57829003601f168201915b505050505081565b610e7c83838361271f565b808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b606060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f3957600080fd5b82915081519050602f7f01000000000000000000000000000000000000000000000000000000000000000282600183610f7291906138f8565b81518110610f8357610f826137dc565b5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611003578080610fff906138b0565b9150505b8067ffffffffffffffff81111561101d5761101c6131d3565b5b6040519080825280601f01601f19166020018201604052801561104f5781602001600182028036833780820191505090505b50600a908161105e9190613ade565b5060005b825181101561114f5782818151811061107e5761107d6137dc565b5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f010000000000000000000000000000000000000000000000000000000000000002600a8281546110d6906137ab565b81106110e5576110e46137dc565b5b8154600116156111045790600052602060002090602091828204019190065b601f036101000a81548160ff021916907f0100000000000000000000000000000000000000000000000000000000000000840402179055508080611147906138b0565b915050611062565b50815181146111ef577f2f00000000000000000000000000000000000000000000000000000000000000600a83518154611188906137ab565b8110611197576111966137dc565b5b8154600116156111b65790600052602060002090602091828204019190065b601f036101000a81548160ff021916907f0100000000000000000000000000000000000000000000000000000000000000840402179055505b505050565b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461124f57600080fd5b611257612da9565b6002600086815260200190815260200160002080549050915060008211156112d4576000600260008781526020019081526020016000206000815481106112a1576112a06137dc565b5b9060005260206000200160000160009054906101000a900465ffffffffffff1665ffffffffffff16116112d357600080fd5b5b83816000019065ffffffffffff16908165ffffffffffff168152505060026000868152602001908152602001600020819080600181540180825580915050600190039060005260206000200160009091909190915060008201518160000160006101000a81548165ffffffffffff021916908365ffffffffffff16021790555060208201518160000160066101000a81548165ffffffffffff021916908365ffffffffffff160217905550604082015181600001600c6101000a81548160ff0219169083151502179055505050600185908060018154018082558091505060019003906000526020600020016000909190919091505560008465ffffffffffff16036113f9576001600860008282546113ed919061387c565b9250508190555061141b565b8365ffffffffffff1660086000828254611413919061387c565b925050819055505b8365ffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fb85ba54b9f6f8241b7e1499e3cfc186ac0b1c8b7100f599bf6ca6844f896c3428760405161146a9190613137565b60405180910390a360019250505092915050565b6001818154811061148e57600080fd5b906000526020600020016000915090505481565b600260205281600052604060002081815481106114be57600080fd5b90600052602060002001600091509150508060000160009054906101000a900465ffffffffffff16908060000160069054906101000a900465ffffffffffff169080600001600c9054906101000a900460ff16905083565b600080600360008460010281526020019081526020016000205490506060819060020a026c010000000000000000000000009004915050919050565b6060806060600061156285610a84565b9150600a8054611571906137ab565b90509050808251611582919061387c565b67ffffffffffffffff81111561159b5761159a6131d3565b5b6040519080825280601f01601f1916602001820160405280156115cd5781602001600182028036833780820191505090505b50925060005b8181101561169257600a8181546115e9906137ab565b81106115f8576115f76137dc565b5b8154600116156116175790600052602060002090602091828204019190065b9054901a7f0100000000000000000000000000000000000000000000000000000000000000028482815181106116505761164f6137dc565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808061168a906138b0565b9150506115d3565b5060005b825181101561175f578281815181106116b2576116b16137dc565b5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f01000000000000000000000000000000000000000000000000000000000000000284838151811061170f5761170e6137dc565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508180611749906138b0565b9250508080611757906138b0565b915050611696565b50829350505050919050565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600780546117e5906137ab565b80601f0160208091040260200160405190810160405280929190818152602001828054611811906137ab565b801561185e5780601f106118335761010080835404028352916020019161185e565b820191906000526020600020905b81548152906001019060200180831161184157829003601f168201915b505050505081565b801561198757600073ffffffffffffffffffffffffffffffffffffffff16600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461190457600080fd5b81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611a9f565b600073ffffffffffffffffffffffffffffffffffffffff16600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611a1f57600080fd5b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611afc9190612e90565b60405180910390a35050565b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b6357600080fd5b6001600260008581526020019081526020016000208054905014611b8657600080fd5b600060026000858152602001908152602001600020600081548110611bae57611bad6137dc565b5b9060005260206000200160000160009054906101000a900465ffffffffffff1665ffffffffffff1614611be057600080fd5b6000600102600360008581526020019081526020016000205414611c0357600080fd5b8373ffffffffffffffffffffffffffffffffffffffff1690507fc000000000000000000000000000000000000000000000000000000000000000811790508060010260036000858152602001908152602001600020819055506001600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611cac919061387c565b925050819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fab8530f87dc9b59234c4623bf917212bb2536d647574c8e7e5da92c2ede0c9f88560019004604051611d14919061302b565b60405180910390a38291505092915050565b60095481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d8757600080fd5b600060149054906101000a900460ff1615611da157600080fd5b8115611dc3576001600060146101000a81548160ff0219169083151502179055505b826000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001905092915050565b611e1884848461271f565b818373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4818373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f75c9e114f073c346aac7d1d7e9a3c3c14edabcdd27de07d1d9e425f45d318c5e84611ecd90613bd5565b604051611eda9190613137565b60405180910390a450505050565b606060008260010290506000600260008381526020019081526020016000208054905011611f1557600080fd5b611f2183600102611552565b915050919050565b60608060606000611f3985610a84565b9150604767ffffffffffffffff811115611f5657611f556131d3565b5b6040519080825280601f01601f191660200182016040528015611f885781602001600182028036833780820191505090505b5092507f730000000000000000000000000000000000000000000000000000000000000083600081518110611fc057611fbf6137dc565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f680000000000000000000000000000000000000000000000000000000000000083600181518110612024576120236137dc565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f610000000000000000000000000000000000000000000000000000000000000083600281518110612088576120876137dc565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f3200000000000000000000000000000000000000000000000000000000000000836003815181106120ec576120eb6137dc565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f3500000000000000000000000000000000000000000000000000000000000000836004815181106121505761214f6137dc565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f3600000000000000000000000000000000000000000000000000000000000000836005815181106121b4576121b36137dc565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f3a0000000000000000000000000000000000000000000000000000000000000083600681518110612218576122176137dc565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506007905060005b60408110156123175782818151811061226a576122696137dc565b5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000028483815181106122c7576122c66137dc565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508180612301906138b0565b925050808061230f906138b0565b91505061224e565b50829350505050919050565b600080600260008581526020019081526020016000208361ffff168154811061234f5761234e6137dc565b5b90600052602060002001905080600001600c9054906101000a900460ff161561237757600080fd5b60008361ffff161480156123a9575060008160000160009054906101000a900465ffffffffffff1665ffffffffffff16145b156124085760018160000160068282829054906101000a900465ffffffffffff166123d49190613c3c565b92506101000a81548165ffffffffffff021916908365ffffffffffff1602179055506124008585611b08565b9150506124cf565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461246057600080fd5b8060000160009054906101000a900465ffffffffffff1665ffffffffffff168160000160069054906101000a900465ffffffffffff1665ffffffffffff16106124a857600080fd5b6124cb8585858460000160069054906101000a900465ffffffffffff1685612a36565b9150505b9392505050565b60008173ffffffffffffffffffffffffffffffffffffffff16600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905092915050565b600080600260008681526020019081526020016000208461ffff168154811061259a576125996137dc565b5b90600052602060002001905060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146125fe57600080fd5b60008160000160009054906101000a900465ffffffffffff1665ffffffffffff161161262957600080fd5b8060000160009054906101000a900465ffffffffffff1665ffffffffffff168365ffffffffffff161061265b57600080fd5b6126688686868685612a36565b915050949350505050565b6000806003600084815260200190815260200160002054905061269581612cb4565b61269e57600080fd5b6126a781612ce6565b156126b5578291505061271a565b7effffffffffffffff00000000000000000000000000000000000000000000006001028116905060b881908060020a820491505090507fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000600102831681179050809150505b919050565b60003073ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401612776919061302b565b602060405180830381865afa158015612793573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127b79190613c8b565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146127f157600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614612925573373ffffffffffffffffffffffffffffffffffffffff166004600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061291b57503373ffffffffffffffffffffffffffffffffffffffff16600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b61292457600080fd5b5b60006004600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506129828284612d18565b6001600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546129d291906138f8565b925050819055506001600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612a29919061387c565b9250508190555050505050565b6000806000807fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000008860019004169250603067ffffffffffffffff8861ffff161667ffffffffffffffff169060020a0267ffffffffffffffff16831792508565ffffffffffff16831792508260010290506000600102600360008381526020019081526020016000205414612ac957600080fd5b84600001600c9054906101000a900460ff16612b2b578460000160069054906101000a900465ffffffffffff1665ffffffffffff168665ffffffffffff1614612b2a57600185600001600c6101000a81548160ff0219169083151502179055505b5b67ffffffffffffffff886001900416915060b8829060020a0291507f8000000000000000000000000000000000000000000000000000000000000000821791508873ffffffffffffffffffffffffffffffffffffffff168217915060018560000160068282829054906101000a900465ffffffffffff16612bac9190613c3c565b92506101000a81548165ffffffffffff021916908365ffffffffffff1602179055508160010260036000838152602001908152602001600020819055506001600b60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612c39919061387c565b925050819055508873ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fab8530f87dc9b59234c4623bf917212bb2536d647574c8e7e5da92c2ede0c9f885604051612c9d919061302b565b60405180910390a380935050505095945050505050565b6000807f8000000000000000000000000000000000000000000000000000000000000000836001900416119050919050565b6000807f4000000000000000000000000000000000000000000000000000000000000000836001900416119050919050565b600080836001029050600360008281526020019081526020016000205460019004915060008203612d4857600080fd5b7fffffffffffffffffffffffff0000000000000000000000000000000000000000821691508273ffffffffffffffffffffffffffffffffffffffff168217915081600102600360008381526020019081526020016000208190555050505050565b6040518060600160405280600065ffffffffffff168152602001600065ffffffffffff1681526020016000151581525090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612e2581612df0565b8114612e3057600080fd5b50565b600081359050612e4281612e1c565b92915050565b600060208284031215612e5e57612e5d612de6565b5b6000612e6c84828501612e33565b91505092915050565b60008115159050919050565b612e8a81612e75565b82525050565b6000602082019050612ea56000830184612e81565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612ee5578082015181840152602081019050612eca565b60008484015250505050565b6000601f19601f8301169050919050565b6000612f0d82612eab565b612f178185612eb6565b9350612f27818560208601612ec7565b612f3081612ef1565b840191505092915050565b60006020820190508181036000830152612f558184612f02565b905092915050565b6000819050919050565b612f7081612f5d565b8114612f7b57600080fd5b50565b600081359050612f8d81612f67565b92915050565b600060208284031215612fa957612fa8612de6565b5b6000612fb784828501612f7e565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612feb82612fc0565b9050919050565b612ffb81612fe0565b82525050565b60006020820190506130166000830184612ff2565b92915050565b61302581612f5d565b82525050565b6000602082019050613040600083018461301c565b92915050565b61304f81612fe0565b811461305a57600080fd5b50565b60008135905061306c81613046565b92915050565b60008060006060848603121561308b5761308a612de6565b5b60006130998682870161305d565b93505060206130aa8682870161305d565b92505060406130bb86828701612f7e565b9150509250925092565b6000819050919050565b6130d8816130c5565b81146130e357600080fd5b50565b6000813590506130f5816130cf565b92915050565b60006020828403121561311157613110612de6565b5b600061311f848285016130e6565b91505092915050565b613131816130c5565b82525050565b600060208201905061314c6000830184613128565b92915050565b600081519050919050565b600082825260208201905092915050565b600061317982613152565b613183818561315d565b9350613193818560208601612ec7565b61319c81612ef1565b840191505092915050565b600060208201905081810360008301526131c1818461316e565b905092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61320b82612ef1565b810181811067ffffffffffffffff8211171561322a576132296131d3565b5b80604052505050565b600061323d612ddc565b90506132498282613202565b919050565b600067ffffffffffffffff821115613269576132686131d3565b5b61327282612ef1565b9050602081019050919050565b82818337600083830152505050565b60006132a161329c8461324e565b613233565b9050828152602081018484840111156132bd576132bc6131ce565b5b6132c884828561327f565b509392505050565b600082601f8301126132e5576132e46131c9565b5b81356132f584826020860161328e565b91505092915050565b60006020828403121561331457613313612de6565b5b600082013567ffffffffffffffff81111561333257613331612deb565b5b61333e848285016132d0565b91505092915050565b600065ffffffffffff82169050919050565b61336281613347565b811461336d57600080fd5b50565b60008135905061337f81613359565b92915050565b6000806040838503121561339c5761339b612de6565b5b60006133aa858286016130e6565b92505060206133bb85828601613370565b9150509250929050565b600080604083850312156133dc576133db612de6565b5b60006133ea858286016130e6565b92505060206133fb85828601612f7e565b9150509250929050565b61340e81613347565b82525050565b60006060820190506134296000830186613405565b6134366020830185613405565b6134436040830184612e81565b949350505050565b60006020828403121561346157613460612de6565b5b600061346f8482850161305d565b91505092915050565b61348181612e75565b811461348c57600080fd5b50565b60008135905061349e81613478565b92915050565b600080604083850312156134bb576134ba612de6565b5b60006134c98582860161305d565b92505060206134da8582860161348f565b9150509250929050565b600080604083850312156134fb576134fa612de6565b5b60006135098582860161305d565b925050602061351a858286016130e6565b9150509250929050565b600067ffffffffffffffff82111561353f5761353e6131d3565b5b61354882612ef1565b9050602081019050919050565b600061356861356384613524565b613233565b905082815260208101848484011115613584576135836131ce565b5b61358f84828561327f565b509392505050565b600082601f8301126135ac576135ab6131c9565b5b81356135bc848260208601613555565b91505092915050565b600080600080608085870312156135df576135de612de6565b5b60006135ed8782880161305d565b94505060206135fe8782880161305d565b935050604061360f87828801612f7e565b925050606085013567ffffffffffffffff8111156136305761362f612deb565b5b61363c87828801613597565b91505092959194509250565b600061ffff82169050919050565b61365f81613648565b811461366a57600080fd5b50565b60008135905061367c81613656565b92915050565b60008060006060848603121561369b5761369a612de6565b5b60006136a98682870161305d565b93505060206136ba868287016130e6565b92505060406136cb8682870161366d565b9150509250925092565b600080604083850312156136ec576136eb612de6565b5b60006136fa8582860161305d565b925050602061370b8582860161305d565b9150509250929050565b6000806000806080858703121561372f5761372e612de6565b5b600061373d8782880161305d565b945050602061374e878288016130e6565b935050604061375f8782880161366d565b925050606061377087828801613370565b91505092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806137c357607f821691505b6020821081036137d6576137d561377c565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006138528261380b565b915061385d8361380b565b9250828201905060ff81111561387657613875613818565b5b92915050565b600061388782612f5d565b915061389283612f5d565b92508282019050808211156138aa576138a9613818565b5b92915050565b60006138bb82612f5d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036138ed576138ec613818565b5b600182019050919050565b600061390382612f5d565b915061390e83612f5d565b925082820390508181111561392657613925613818565b5b92915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b60008160020a8302905092915050565b6000600883026139917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613951565b61399b8683613951565b95508019841693508086168417925050509392505050565b6000819050919050565b60006139d86139d36139ce84612f5d565b6139b3565b612f5d565b9050919050565b6000819050919050565b6139f2836139bd565b613a066139fe826139df565b848454613961565b825550505050565b600090565b613a1b613a0e565b613a268184846139e9565b505050565b5b81811015613a4a57613a3f600082613a13565b600181019050613a2c565b5050565b601f821115613a8f57613a608161392c565b613a6984613941565b81016020851015613a78578190505b613a8c613a8485613941565b830182613a2b565b50505b505050565b60008160020a8304905092915050565b6000613ab560001984600802613a94565b1980831691505092915050565b6000613ace8383613aa4565b9150826002028217905092915050565b613ae782613152565b67ffffffffffffffff811115613b0057613aff6131d3565b5b613b0a82546137ab565b613b15828285613a4e565b600060209050601f831160018114613b485760008415613b36578287015190505b613b408582613ac2565b865550613ba8565b601f198416613b568661392c565b60005b82811015613b7e57848901518255600182019150602085019450602081019050613b59565b86831015613b9b5784890151613b97601f891682613aa4565b8355505b6001600288020188555050505b505050505050565b6000819050602082019050919050565b6000613bcc82516130c5565b80915050919050565b6000613be082613152565b82613bea84613bb0565b9050613bf581613bc0565b92506020821015613c3557613c307fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83602003600802613951565b831692505b5050919050565b6000613c4782613347565b9150613c5283613347565b9250828201905065ffffffffffff811115613c7057613c6f613818565b5b92915050565b600081519050613c8581613046565b92915050565b600060208284031215613ca157613ca0612de6565b5b6000613caf84828501613c76565b9150509291505056fea264697066735822122068552215e0e6a8df402cfef150f4f27d29f7e142d614f38c9d6fc5998835ea9264736f6c63430008110033 -\ No newline at end of file +60806040523480156200001157600080fd5b506040516200437a3803806200437a833981810160405281019062000037919062000279565b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060098190555082600690816200008f919062000564565b508160079081620000a1919062000564565b505050506200064b565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200011482620000c9565b810181811067ffffffffffffffff82111715620001365762000135620000da565b5b80604052505050565b60006200014b620000ab565b905062000159828262000109565b919050565b600067ffffffffffffffff8211156200017c576200017b620000da565b5b6200018782620000c9565b9050602081019050919050565b60005b83811015620001b457808201518184015260208101905062000197565b60008484015250505050565b6000620001d7620001d1846200015e565b6200013f565b905082815260208101848484011115620001f657620001f5620000c4565b5b6200020384828562000194565b509392505050565b600082601f830112620002235762000222620000bf565b5b815162000235848260208601620001c0565b91505092915050565b6000819050919050565b62000253816200023e565b81146200025f57600080fd5b50565b600081519050620002738162000248565b92915050565b600080600060608486031215620002955762000294620000b5565b5b600084015167ffffffffffffffff811115620002b657620002b5620000ba565b5b620002c4868287016200020b565b935050602084015167ffffffffffffffff811115620002e857620002e7620000ba565b5b620002f6868287016200020b565b9250506040620003098682870162000262565b9150509250925092565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200036657607f821691505b6020821081036200037c576200037b6200031e565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b60008160020a8302905092915050565b600060088302620003e97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620003a7565b620003f58683620003a7565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620004426200043c62000436846200040d565b62000417565b6200040d565b9050919050565b6000819050919050565b6200045e8362000421565b620004766200046d8262000449565b848454620003b7565b825550505050565b600090565b6200048d6200047e565b6200049a81848462000453565b505050565b5b81811015620004c257620004b660008262000483565b600181019050620004a0565b5050565b601f8211156200051157620004db8162000382565b620004e68462000397565b81016020851015620004f6578190505b6200050e620005058562000397565b8301826200049f565b50505b505050565b60008160020a8304905092915050565b6000620005396000198460080262000516565b1980831691505092915050565b600062000554838362000526565b9150826002028217905092915050565b6200056f8262000313565b67ffffffffffffffff8111156200058b576200058a620000da565b5b6200059782546200034d565b620005a4828285620004c6565b600060209050601f831160018114620005dc5760008415620005c7578287015190505b620005d3858262000546565b86555062000643565b601f198416620005ec8662000382565b60005b828110156200061657848901518255600182019150602085019450602081019050620005ef565b8683101562000636578489015162000632601f89168262000526565b8355505b6001600288020188555050505b505050505050565b613d1f806200065b6000396000f3fe6080604052600436106101df576000357c01000000000000000000000000000000000000000000000000000000009004806369e85c7111610114578063b242e534116100b2578063d824ee4f11610081578063d824ee4f146106e4578063e985e9c514610721578063f117e1731461075e578063f9613ab21461079b576101df565b8063b242e53414610611578063b88d4fde1461064e578063c87b56dd1461066a578063c9796c39146106a7576101df565b806395d89b41116100ee57806395d89b4114610555578063a22cb46514610580578063adf288df146105a9578063b1a6afd3146105e6576101df565b806369e85c71146104b057806370a08231146104ed5780638da5cb5b1461052a576101df565b806340c84b0e116101815780634d03546a1161015b5780634d03546a146103ba5780634f64b2be146103f7578063559f5dc9146104345780636352211e14610473576101df565b806340c84b0e1461034a57806342842e0e1461037557806349f2553a14610391576101df565b806318160ddd116101bd57806318160ddd1461028957806323b872dd146102b457806324e0febc146102d05780633fd2f5931461030d576101df565b806301ffc9a7146101e457806306fdde0314610221578063081812fc1461024c575b600080fd5b3480156101f057600080fd5b5061020b60048036038101906102069190612e79565b6107d8565b6040516102189190612ec1565b60405180910390f35b34801561022d57600080fd5b5061023661092c565b6040516102439190612f6c565b60405180910390f35b34801561025857600080fd5b50610273600480360381019061026e9190612fc4565b6109ba565b6040516102809190613032565b60405180910390f35b34801561029557600080fd5b5061029e6109f7565b6040516102ab919061305c565b60405180910390f35b6102ce60048036038101906102c991906130a3565b610a01565b005b3480156102dc57600080fd5b506102f760048036038101906102f2919061312c565b610a6c565b6040516103049190613168565b60405180910390f35b34801561031957600080fd5b50610334600480360381019061032f919061312c565b610a84565b60405161034191906131d8565b60405180910390f35b34801561035657600080fd5b5061035f610de3565b60405161036c91906131d8565b60405180910390f35b61038f600480360381019061038a91906130a3565b610e71565b005b34801561039d57600080fd5b506103b860048036038101906103b3919061332f565b610edc565b005b3480156103c657600080fd5b506103e160048036038101906103dc91906133b6565b6111f4565b6040516103ee9190612ec1565b60405180910390f35b34801561040357600080fd5b5061041e60048036038101906104199190612fc4565b61147e565b60405161042b9190613168565b60405180910390f35b34801561044057600080fd5b5061045b600480360381019061045691906133f6565b6114a2565b60405161046a93929190613445565b60405180910390f35b34801561047f57600080fd5b5061049a60048036038101906104959190612fc4565b611516565b6040516104a79190613032565b60405180910390f35b3480156104bc57600080fd5b506104d760048036038101906104d2919061312c565b611552565b6040516104e49190612f6c565b60405180910390f35b3480156104f957600080fd5b50610514600480360381019061050f919061347c565b61176b565b604051610521919061305c565b60405180910390f35b34801561053657600080fd5b5061053f6117b4565b60405161054c9190613032565b60405180910390f35b34801561056157600080fd5b5061056a6117d8565b6040516105779190612f6c565b60405180910390f35b34801561058c57600080fd5b506105a760048036038101906105a291906134d5565b611866565b005b3480156105b557600080fd5b506105d060048036038101906105cb9190613515565b611b08565b6040516105dd9190613168565b60405180910390f35b3480156105f257600080fd5b506105fb611d26565b6040516106089190613168565b60405180910390f35b34801561061d57600080fd5b50610638600480360381019061063391906134d5565b611d2c565b6040516106459190612ec1565b60405180910390f35b610668600480360381019061066391906135f6565b611e0d565b005b34801561067657600080fd5b50610691600480360381019061068c9190612fc4565b611ee8565b60405161069e9190612f6c565b60405180910390f35b3480156106b357600080fd5b506106ce60048036038101906106c9919061312c565b611f5a565b6040516106db9190612f6c565b60405180910390f35b3480156106f057600080fd5b5061070b600480360381019061070691906136b3565b612354565b6040516107189190613168565b60405180910390f35b34801561072d57600080fd5b5061074860048036038101906107439190613706565b612507565b6040516107559190612ec1565b60405180910390f35b34801561076a57600080fd5b5061078560048036038101906107809190613746565b61259f565b6040516107929190613168565b60405180910390f35b3480156107a757600080fd5b506107c260048036038101906107bd919061312c565b6126a4565b6040516107cf9190613168565b60405180910390f35b60006380ac58cd7c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19160361082c5760019050610927565b635b5e139f7c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19160361087e5760019050610927565b63449a52f87c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916036108d05760019050610927565b6301ffc9a77c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916036109225760019050610927565b600090505b919050565b60068054610939906137dc565b80601f0160208091040260200160405190810160405280929190818152602001828054610965906137dc565b80156109b25780601f10610987576101008083540402835291602001916109b2565b820191906000526020600020905b81548152906001019060200180831161099557829003601f168201915b505050505081565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600854905090565b610a0c838383612750565b808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b60036020528060005260406000206000915090505481565b606080600080604067ffffffffffffffff811115610aa557610aa4613204565b5b6040519080825280601f01601f191660200182016040528015610ad75781602001600182028036833780820191505090505b5092506000905060005b6020811015610dd757600460f0878360208110610b0157610b0061380d565b5b1a7f0100000000000000000000000000000000000000000000000000000000000000027f010000000000000000000000000000000000000000000000000000000000000090041660ff16908060020a82049150509250600a8360ff161015610bd957603083610b709190613878565b7f010000000000000000000000000000000000000000000000000000000000000002848381518110610ba557610ba461380d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350610c4b565b605783610be69190613878565b7f010000000000000000000000000000000000000000000000000000000000000002848381518110610c1b57610c1a61380d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505b600f868260208110610c6057610c5f61380d565b5b1a7f0100000000000000000000000000000000000000000000000000000000000000027f01000000000000000000000000000000000000000000000000000000000000009004169250600a8360ff161015610d3757603083610cc29190613878565b7f01000000000000000000000000000000000000000000000000000000000000000284600184610cf291906138ad565b81518110610d0357610d0261380d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350610db5565b605783610d449190613878565b7f01000000000000000000000000000000000000000000000000000000000000000284600184610d7491906138ad565b81518110610d8557610d8461380d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505b600282610dc291906138ad565b91508080610dcf906138e1565b915050610ae1565b50829350505050919050565b600a8054610df0906137dc565b80601f0160208091040260200160405190810160405280929190818152602001828054610e1c906137dc565b8015610e695780601f10610e3e57610100808354040283529160200191610e69565b820191906000526020600020905b815481529060010190602001808311610e4c57829003601f168201915b505050505081565b610e7c838383612750565b808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b606060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f3957600080fd5b82915081519050602f7f01000000000000000000000000000000000000000000000000000000000000000282600183610f729190613929565b81518110610f8357610f8261380d565b5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611003578080610fff906138e1565b9150505b8067ffffffffffffffff81111561101d5761101c613204565b5b6040519080825280601f01601f19166020018201604052801561104f5781602001600182028036833780820191505090505b50600a908161105e9190613b0f565b5060005b825181101561114f5782818151811061107e5761107d61380d565b5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f010000000000000000000000000000000000000000000000000000000000000002600a8281546110d6906137dc565b81106110e5576110e461380d565b5b8154600116156111045790600052602060002090602091828204019190065b601f036101000a81548160ff021916907f0100000000000000000000000000000000000000000000000000000000000000840402179055508080611147906138e1565b915050611062565b50815181146111ef577f2f00000000000000000000000000000000000000000000000000000000000000600a83518154611188906137dc565b81106111975761119661380d565b5b8154600116156111b65790600052602060002090602091828204019190065b601f036101000a81548160ff021916907f0100000000000000000000000000000000000000000000000000000000000000840402179055505b505050565b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461124f57600080fd5b611257612dda565b6002600086815260200190815260200160002080549050915060008211156112d4576000600260008781526020019081526020016000206000815481106112a1576112a061380d565b5b9060005260206000200160000160009054906101000a900465ffffffffffff1665ffffffffffff16116112d357600080fd5b5b83816000019065ffffffffffff16908165ffffffffffff168152505060026000868152602001908152602001600020819080600181540180825580915050600190039060005260206000200160009091909190915060008201518160000160006101000a81548165ffffffffffff021916908365ffffffffffff16021790555060208201518160000160066101000a81548165ffffffffffff021916908365ffffffffffff160217905550604082015181600001600c6101000a81548160ff0219169083151502179055505050600185908060018154018082558091505060019003906000526020600020016000909190919091505560008465ffffffffffff16036113f9576001600860008282546113ed91906138ad565b9250508190555061141b565b8365ffffffffffff166008600082825461141391906138ad565b925050819055505b8365ffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fb85ba54b9f6f8241b7e1499e3cfc186ac0b1c8b7100f599bf6ca6844f896c3428760405161146a9190613168565b60405180910390a360019250505092915050565b6001818154811061148e57600080fd5b906000526020600020016000915090505481565b600260205281600052604060002081815481106114be57600080fd5b90600052602060002001600091509150508060000160009054906101000a900465ffffffffffff16908060000160069054906101000a900465ffffffffffff169080600001600c9054906101000a900460ff16905083565b600080600360008460010281526020019081526020016000205490506060819060020a026c010000000000000000000000009004915050919050565b6060806060600061156285610a84565b9150600a8054611571906137dc565b9050905080825161158291906138ad565b67ffffffffffffffff81111561159b5761159a613204565b5b6040519080825280601f01601f1916602001820160405280156115cd5781602001600182028036833780820191505090505b50925060005b8181101561169257600a8181546115e9906137dc565b81106115f8576115f761380d565b5b8154600116156116175790600052602060002090602091828204019190065b9054901a7f0100000000000000000000000000000000000000000000000000000000000000028482815181106116505761164f61380d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808061168a906138e1565b9150506115d3565b5060005b825181101561175f578281815181106116b2576116b161380d565b5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f01000000000000000000000000000000000000000000000000000000000000000284838151811061170f5761170e61380d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508180611749906138e1565b9250508080611757906138e1565b915050611696565b50829350505050919050565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600780546117e5906137dc565b80601f0160208091040260200160405190810160405280929190818152602001828054611811906137dc565b801561185e5780601f106118335761010080835404028352916020019161185e565b820191906000526020600020905b81548152906001019060200180831161184157829003601f168201915b505050505081565b801561198757600073ffffffffffffffffffffffffffffffffffffffff16600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461190457600080fd5b81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611a9f565b600073ffffffffffffffffffffffffffffffffffffffff16600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611a1f57600080fd5b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611afc9190612ec1565b60405180910390a35050565b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b6357600080fd5b6001600260008581526020019081526020016000208054905014611b8657600080fd5b600060026000858152602001908152602001600020600081548110611bae57611bad61380d565b5b9060005260206000200160000160009054906101000a900465ffffffffffff1665ffffffffffff1614611be057600080fd5b6000600102600360008581526020019081526020016000205414611c0357600080fd5b8373ffffffffffffffffffffffffffffffffffffffff1690507fc000000000000000000000000000000000000000000000000000000000000000811790508060010260036000858152602001908152602001600020819055506001600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611cac91906138ad565b925050819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fab8530f87dc9b59234c4623bf917212bb2536d647574c8e7e5da92c2ede0c9f88560019004604051611d14919061305c565b60405180910390a38291505092915050565b60095481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d8757600080fd5b600060149054906101000a900460ff1615611da157600080fd5b8115611dc3576001600060146101000a81548160ff0219169083151502179055505b826000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001905092915050565b611e18848484612750565b818373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4818373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f75c9e114f073c346aac7d1d7e9a3c3c14edabcdd27de07d1d9e425f45d318c5e84611ecd90613c06565b604051611eda9190613168565b60405180910390a450505050565b606060008260010290506000600260008381526020019081526020016000208054905003611f2357611f19816126a4565b9050806001900492505b6000600260008381526020019081526020016000208054905011611f4657600080fd5b611f5283600102611552565b915050919050565b60608060606000611f6a85610a84565b9150604767ffffffffffffffff811115611f8757611f86613204565b5b6040519080825280601f01601f191660200182016040528015611fb95781602001600182028036833780820191505090505b5092507f730000000000000000000000000000000000000000000000000000000000000083600081518110611ff157611ff061380d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f6800000000000000000000000000000000000000000000000000000000000000836001815181106120555761205461380d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f6100000000000000000000000000000000000000000000000000000000000000836002815181106120b9576120b861380d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f32000000000000000000000000000000000000000000000000000000000000008360038151811061211d5761211c61380d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f3500000000000000000000000000000000000000000000000000000000000000836004815181106121815761218061380d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f3600000000000000000000000000000000000000000000000000000000000000836005815181106121e5576121e461380d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f3a00000000000000000000000000000000000000000000000000000000000000836006815181106122495761224861380d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506007905060005b60408110156123485782818151811061229b5761229a61380d565b5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000028483815181106122f8576122f761380d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508180612332906138e1565b9250508080612340906138e1565b91505061227f565b50829350505050919050565b600080600260008581526020019081526020016000208361ffff16815481106123805761237f61380d565b5b90600052602060002001905080600001600c9054906101000a900460ff16156123a857600080fd5b60008361ffff161480156123da575060008160000160009054906101000a900465ffffffffffff1665ffffffffffff16145b156124395760018160000160068282829054906101000a900465ffffffffffff166124059190613c6d565b92506101000a81548165ffffffffffff021916908365ffffffffffff1602179055506124318585611b08565b915050612500565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461249157600080fd5b8060000160009054906101000a900465ffffffffffff1665ffffffffffff168160000160069054906101000a900465ffffffffffff1665ffffffffffff16106124d957600080fd5b6124fc8585858460000160069054906101000a900465ffffffffffff1685612a67565b9150505b9392505050565b60008173ffffffffffffffffffffffffffffffffffffffff16600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905092915050565b600080600260008681526020019081526020016000208461ffff16815481106125cb576125ca61380d565b5b90600052602060002001905060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461262f57600080fd5b60008160000160009054906101000a900465ffffffffffff1665ffffffffffff161161265a57600080fd5b8060000160009054906101000a900465ffffffffffff1665ffffffffffff168365ffffffffffff161061268c57600080fd5b6126998686868685612a67565b915050949350505050565b600080600360008481526020019081526020016000205490506126c681612ce5565b6126cf57600080fd5b6126d881612d17565b156126e6578291505061274b565b7effffffffffffffff00000000000000000000000000000000000000000000006001028116905060b881908060020a820491505090507fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000600102831681179050809150505b919050565b60003073ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016127a7919061305c565b602060405180830381865afa1580156127c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e89190613cbc565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461282257600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614612956573373ffffffffffffffffffffffffffffffffffffffff166004600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061294c57503373ffffffffffffffffffffffffffffffffffffffff16600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b61295557600080fd5b5b60006004600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506129b38284612d49565b6001600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612a039190613929565b925050819055506001600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612a5a91906138ad565b9250508190555050505050565b6000806000807fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000008860019004169250603067ffffffffffffffff8861ffff161667ffffffffffffffff169060020a0267ffffffffffffffff16831792508565ffffffffffff16831792508260010290506000600102600360008381526020019081526020016000205414612afa57600080fd5b84600001600c9054906101000a900460ff16612b5c578460000160069054906101000a900465ffffffffffff1665ffffffffffff168665ffffffffffff1614612b5b57600185600001600c6101000a81548160ff0219169083151502179055505b5b67ffffffffffffffff886001900416915060b8829060020a0291507f8000000000000000000000000000000000000000000000000000000000000000821791508873ffffffffffffffffffffffffffffffffffffffff168217915060018560000160068282829054906101000a900465ffffffffffff16612bdd9190613c6d565b92506101000a81548165ffffffffffff021916908365ffffffffffff1602179055508160010260036000838152602001908152602001600020819055506001600b60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612c6a91906138ad565b925050819055508873ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fab8530f87dc9b59234c4623bf917212bb2536d647574c8e7e5da92c2ede0c9f885604051612cce919061305c565b60405180910390a380935050505095945050505050565b6000807f8000000000000000000000000000000000000000000000000000000000000000836001900416119050919050565b6000807f4000000000000000000000000000000000000000000000000000000000000000836001900416119050919050565b600080836001029050600360008281526020019081526020016000205460019004915060008203612d7957600080fd5b7fffffffffffffffffffffffff0000000000000000000000000000000000000000821691508273ffffffffffffffffffffffffffffffffffffffff168217915081600102600360008381526020019081526020016000208190555050505050565b6040518060600160405280600065ffffffffffff168152602001600065ffffffffffff1681526020016000151581525090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612e5681612e21565b8114612e6157600080fd5b50565b600081359050612e7381612e4d565b92915050565b600060208284031215612e8f57612e8e612e17565b5b6000612e9d84828501612e64565b91505092915050565b60008115159050919050565b612ebb81612ea6565b82525050565b6000602082019050612ed66000830184612eb2565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612f16578082015181840152602081019050612efb565b60008484015250505050565b6000601f19601f8301169050919050565b6000612f3e82612edc565b612f488185612ee7565b9350612f58818560208601612ef8565b612f6181612f22565b840191505092915050565b60006020820190508181036000830152612f868184612f33565b905092915050565b6000819050919050565b612fa181612f8e565b8114612fac57600080fd5b50565b600081359050612fbe81612f98565b92915050565b600060208284031215612fda57612fd9612e17565b5b6000612fe884828501612faf565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061301c82612ff1565b9050919050565b61302c81613011565b82525050565b60006020820190506130476000830184613023565b92915050565b61305681612f8e565b82525050565b6000602082019050613071600083018461304d565b92915050565b61308081613011565b811461308b57600080fd5b50565b60008135905061309d81613077565b92915050565b6000806000606084860312156130bc576130bb612e17565b5b60006130ca8682870161308e565b93505060206130db8682870161308e565b92505060406130ec86828701612faf565b9150509250925092565b6000819050919050565b613109816130f6565b811461311457600080fd5b50565b60008135905061312681613100565b92915050565b60006020828403121561314257613141612e17565b5b600061315084828501613117565b91505092915050565b613162816130f6565b82525050565b600060208201905061317d6000830184613159565b92915050565b600081519050919050565b600082825260208201905092915050565b60006131aa82613183565b6131b4818561318e565b93506131c4818560208601612ef8565b6131cd81612f22565b840191505092915050565b600060208201905081810360008301526131f2818461319f565b905092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61323c82612f22565b810181811067ffffffffffffffff8211171561325b5761325a613204565b5b80604052505050565b600061326e612e0d565b905061327a8282613233565b919050565b600067ffffffffffffffff82111561329a57613299613204565b5b6132a382612f22565b9050602081019050919050565b82818337600083830152505050565b60006132d26132cd8461327f565b613264565b9050828152602081018484840111156132ee576132ed6131ff565b5b6132f98482856132b0565b509392505050565b600082601f830112613316576133156131fa565b5b81356133268482602086016132bf565b91505092915050565b60006020828403121561334557613344612e17565b5b600082013567ffffffffffffffff81111561336357613362612e1c565b5b61336f84828501613301565b91505092915050565b600065ffffffffffff82169050919050565b61339381613378565b811461339e57600080fd5b50565b6000813590506133b08161338a565b92915050565b600080604083850312156133cd576133cc612e17565b5b60006133db85828601613117565b92505060206133ec858286016133a1565b9150509250929050565b6000806040838503121561340d5761340c612e17565b5b600061341b85828601613117565b925050602061342c85828601612faf565b9150509250929050565b61343f81613378565b82525050565b600060608201905061345a6000830186613436565b6134676020830185613436565b6134746040830184612eb2565b949350505050565b60006020828403121561349257613491612e17565b5b60006134a08482850161308e565b91505092915050565b6134b281612ea6565b81146134bd57600080fd5b50565b6000813590506134cf816134a9565b92915050565b600080604083850312156134ec576134eb612e17565b5b60006134fa8582860161308e565b925050602061350b858286016134c0565b9150509250929050565b6000806040838503121561352c5761352b612e17565b5b600061353a8582860161308e565b925050602061354b85828601613117565b9150509250929050565b600067ffffffffffffffff8211156135705761356f613204565b5b61357982612f22565b9050602081019050919050565b600061359961359484613555565b613264565b9050828152602081018484840111156135b5576135b46131ff565b5b6135c08482856132b0565b509392505050565b600082601f8301126135dd576135dc6131fa565b5b81356135ed848260208601613586565b91505092915050565b600080600080608085870312156136105761360f612e17565b5b600061361e8782880161308e565b945050602061362f8782880161308e565b935050604061364087828801612faf565b925050606085013567ffffffffffffffff81111561366157613660612e1c565b5b61366d878288016135c8565b91505092959194509250565b600061ffff82169050919050565b61369081613679565b811461369b57600080fd5b50565b6000813590506136ad81613687565b92915050565b6000806000606084860312156136cc576136cb612e17565b5b60006136da8682870161308e565b93505060206136eb86828701613117565b92505060406136fc8682870161369e565b9150509250925092565b6000806040838503121561371d5761371c612e17565b5b600061372b8582860161308e565b925050602061373c8582860161308e565b9150509250929050565b600080600080608085870312156137605761375f612e17565b5b600061376e8782880161308e565b945050602061377f87828801613117565b93505060406137908782880161369e565b92505060606137a1878288016133a1565b91505092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806137f457607f821691505b602082108103613807576138066137ad565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006138838261383c565b915061388e8361383c565b9250828201905060ff8111156138a7576138a6613849565b5b92915050565b60006138b882612f8e565b91506138c383612f8e565b92508282019050808211156138db576138da613849565b5b92915050565b60006138ec82612f8e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361391e5761391d613849565b5b600182019050919050565b600061393482612f8e565b915061393f83612f8e565b925082820390508181111561395757613956613849565b5b92915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b60008160020a8302905092915050565b6000600883026139c27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613982565b6139cc8683613982565b95508019841693508086168417925050509392505050565b6000819050919050565b6000613a09613a046139ff84612f8e565b6139e4565b612f8e565b9050919050565b6000819050919050565b613a23836139ee565b613a37613a2f82613a10565b848454613992565b825550505050565b600090565b613a4c613a3f565b613a57818484613a1a565b505050565b5b81811015613a7b57613a70600082613a44565b600181019050613a5d565b5050565b601f821115613ac057613a918161395d565b613a9a84613972565b81016020851015613aa9578190505b613abd613ab585613972565b830182613a5c565b50505b505050565b60008160020a8304905092915050565b6000613ae660001984600802613ac5565b1980831691505092915050565b6000613aff8383613ad5565b9150826002028217905092915050565b613b1882613183565b67ffffffffffffffff811115613b3157613b30613204565b5b613b3b82546137dc565b613b46828285613a7f565b600060209050601f831160018114613b795760008415613b67578287015190505b613b718582613af3565b865550613bd9565b601f198416613b878661395d565b60005b82811015613baf57848901518255600182019150602085019450602081019050613b8a565b86831015613bcc5784890151613bc8601f891682613ad5565b8355505b6001600288020188555050505b505050505050565b6000819050602082019050919050565b6000613bfd82516130f6565b80915050919050565b6000613c1182613183565b82613c1b84613be1565b9050613c2681613bf1565b92506020821015613c6657613c617fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83602003600802613982565b831692505b5050919050565b6000613c7882613378565b9150613c8383613378565b9250828201905065ffffffffffff811115613ca157613ca0613849565b5b92915050565b600081519050613cb681613077565b92915050565b600060208284031215613cd257613cd1612e17565b5b6000613ce084828501613ca7565b9150509291505056fea2646970667358221220a61ab7da49ebc6608666d52010ac708bffa9f8c1c0c76f149381a0a6304083bd64736f6c63430008110033 +\ No newline at end of file diff --git a/python/CHANGELOG b/python/CHANGELOG @@ -2,6 +2,7 @@ * Implement chainlib-gen * Apply fully qualified URL for tokenUri, with mutable base url * Include toURI method for hash uri generation + * Enable tokenURI return for batch item token ids - 0.0.2 * Add allocate and mint CLI tools - 0.0.1 diff --git a/python/craft_nft/data/CraftNFT.bin b/python/craft_nft/data/CraftNFT.bin @@ -1 +1 @@ -60806040523480156200001157600080fd5b506040516200434938038062004349833981810160405281019062000037919062000279565b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060098190555082600690816200008f919062000564565b508160079081620000a1919062000564565b505050506200064b565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200011482620000c9565b810181811067ffffffffffffffff82111715620001365762000135620000da565b5b80604052505050565b60006200014b620000ab565b905062000159828262000109565b919050565b600067ffffffffffffffff8211156200017c576200017b620000da565b5b6200018782620000c9565b9050602081019050919050565b60005b83811015620001b457808201518184015260208101905062000197565b60008484015250505050565b6000620001d7620001d1846200015e565b6200013f565b905082815260208101848484011115620001f657620001f5620000c4565b5b6200020384828562000194565b509392505050565b600082601f830112620002235762000222620000bf565b5b815162000235848260208601620001c0565b91505092915050565b6000819050919050565b62000253816200023e565b81146200025f57600080fd5b50565b600081519050620002738162000248565b92915050565b600080600060608486031215620002955762000294620000b5565b5b600084015167ffffffffffffffff811115620002b657620002b5620000ba565b5b620002c4868287016200020b565b935050602084015167ffffffffffffffff811115620002e857620002e7620000ba565b5b620002f6868287016200020b565b9250506040620003098682870162000262565b9150509250925092565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200036657607f821691505b6020821081036200037c576200037b6200031e565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b60008160020a8302905092915050565b600060088302620003e97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620003a7565b620003f58683620003a7565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620004426200043c62000436846200040d565b62000417565b6200040d565b9050919050565b6000819050919050565b6200045e8362000421565b620004766200046d8262000449565b848454620003b7565b825550505050565b600090565b6200048d6200047e565b6200049a81848462000453565b505050565b5b81811015620004c257620004b660008262000483565b600181019050620004a0565b5050565b601f8211156200051157620004db8162000382565b620004e68462000397565b81016020851015620004f6578190505b6200050e620005058562000397565b8301826200049f565b50505b505050565b60008160020a8304905092915050565b6000620005396000198460080262000516565b1980831691505092915050565b600062000554838362000526565b9150826002028217905092915050565b6200056f8262000313565b67ffffffffffffffff8111156200058b576200058a620000da565b5b6200059782546200034d565b620005a4828285620004c6565b600060209050601f831160018114620005dc5760008415620005c7578287015190505b620005d3858262000546565b86555062000643565b601f198416620005ec8662000382565b60005b828110156200061657848901518255600182019150602085019450602081019050620005ef565b8683101562000636578489015162000632601f89168262000526565b8355505b6001600288020188555050505b505050505050565b613cee806200065b6000396000f3fe6080604052600436106101df576000357c01000000000000000000000000000000000000000000000000000000009004806369e85c7111610114578063b242e534116100b2578063d824ee4f11610081578063d824ee4f146106e4578063e985e9c514610721578063f117e1731461075e578063f9613ab21461079b576101df565b8063b242e53414610611578063b88d4fde1461064e578063c87b56dd1461066a578063c9796c39146106a7576101df565b806395d89b41116100ee57806395d89b4114610555578063a22cb46514610580578063adf288df146105a9578063b1a6afd3146105e6576101df565b806369e85c71146104b057806370a08231146104ed5780638da5cb5b1461052a576101df565b806340c84b0e116101815780634d03546a1161015b5780634d03546a146103ba5780634f64b2be146103f7578063559f5dc9146104345780636352211e14610473576101df565b806340c84b0e1461034a57806342842e0e1461037557806349f2553a14610391576101df565b806318160ddd116101bd57806318160ddd1461028957806323b872dd146102b457806324e0febc146102d05780633fd2f5931461030d576101df565b806301ffc9a7146101e457806306fdde0314610221578063081812fc1461024c575b600080fd5b3480156101f057600080fd5b5061020b60048036038101906102069190612e48565b6107d8565b6040516102189190612e90565b60405180910390f35b34801561022d57600080fd5b5061023661092c565b6040516102439190612f3b565b60405180910390f35b34801561025857600080fd5b50610273600480360381019061026e9190612f93565b6109ba565b6040516102809190613001565b60405180910390f35b34801561029557600080fd5b5061029e6109f7565b6040516102ab919061302b565b60405180910390f35b6102ce60048036038101906102c99190613072565b610a01565b005b3480156102dc57600080fd5b506102f760048036038101906102f291906130fb565b610a6c565b6040516103049190613137565b60405180910390f35b34801561031957600080fd5b50610334600480360381019061032f91906130fb565b610a84565b60405161034191906131a7565b60405180910390f35b34801561035657600080fd5b5061035f610de3565b60405161036c91906131a7565b60405180910390f35b61038f600480360381019061038a9190613072565b610e71565b005b34801561039d57600080fd5b506103b860048036038101906103b391906132fe565b610edc565b005b3480156103c657600080fd5b506103e160048036038101906103dc9190613385565b6111f4565b6040516103ee9190612e90565b60405180910390f35b34801561040357600080fd5b5061041e60048036038101906104199190612f93565b61147e565b60405161042b9190613137565b60405180910390f35b34801561044057600080fd5b5061045b600480360381019061045691906133c5565b6114a2565b60405161046a93929190613414565b60405180910390f35b34801561047f57600080fd5b5061049a60048036038101906104959190612f93565b611516565b6040516104a79190613001565b60405180910390f35b3480156104bc57600080fd5b506104d760048036038101906104d291906130fb565b611552565b6040516104e49190612f3b565b60405180910390f35b3480156104f957600080fd5b50610514600480360381019061050f919061344b565b61176b565b604051610521919061302b565b60405180910390f35b34801561053657600080fd5b5061053f6117b4565b60405161054c9190613001565b60405180910390f35b34801561056157600080fd5b5061056a6117d8565b6040516105779190612f3b565b60405180910390f35b34801561058c57600080fd5b506105a760048036038101906105a291906134a4565b611866565b005b3480156105b557600080fd5b506105d060048036038101906105cb91906134e4565b611b08565b6040516105dd9190613137565b60405180910390f35b3480156105f257600080fd5b506105fb611d26565b6040516106089190613137565b60405180910390f35b34801561061d57600080fd5b50610638600480360381019061063391906134a4565b611d2c565b6040516106459190612e90565b60405180910390f35b610668600480360381019061066391906135c5565b611e0d565b005b34801561067657600080fd5b50610691600480360381019061068c9190612f93565b611ee8565b60405161069e9190612f3b565b60405180910390f35b3480156106b357600080fd5b506106ce60048036038101906106c991906130fb565b611f29565b6040516106db9190612f3b565b60405180910390f35b3480156106f057600080fd5b5061070b60048036038101906107069190613682565b612323565b6040516107189190613137565b60405180910390f35b34801561072d57600080fd5b50610748600480360381019061074391906136d5565b6124d6565b6040516107559190612e90565b60405180910390f35b34801561076a57600080fd5b5061078560048036038101906107809190613715565b61256e565b6040516107929190613137565b60405180910390f35b3480156107a757600080fd5b506107c260048036038101906107bd91906130fb565b612673565b6040516107cf9190613137565b60405180910390f35b60006380ac58cd7c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19160361082c5760019050610927565b635b5e139f7c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19160361087e5760019050610927565b63449a52f87c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916036108d05760019050610927565b6301ffc9a77c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916036109225760019050610927565b600090505b919050565b60068054610939906137ab565b80601f0160208091040260200160405190810160405280929190818152602001828054610965906137ab565b80156109b25780601f10610987576101008083540402835291602001916109b2565b820191906000526020600020905b81548152906001019060200180831161099557829003601f168201915b505050505081565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600854905090565b610a0c83838361271f565b808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b60036020528060005260406000206000915090505481565b606080600080604067ffffffffffffffff811115610aa557610aa46131d3565b5b6040519080825280601f01601f191660200182016040528015610ad75781602001600182028036833780820191505090505b5092506000905060005b6020811015610dd757600460f0878360208110610b0157610b006137dc565b5b1a7f0100000000000000000000000000000000000000000000000000000000000000027f010000000000000000000000000000000000000000000000000000000000000090041660ff16908060020a82049150509250600a8360ff161015610bd957603083610b709190613847565b7f010000000000000000000000000000000000000000000000000000000000000002848381518110610ba557610ba46137dc565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350610c4b565b605783610be69190613847565b7f010000000000000000000000000000000000000000000000000000000000000002848381518110610c1b57610c1a6137dc565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505b600f868260208110610c6057610c5f6137dc565b5b1a7f0100000000000000000000000000000000000000000000000000000000000000027f01000000000000000000000000000000000000000000000000000000000000009004169250600a8360ff161015610d3757603083610cc29190613847565b7f01000000000000000000000000000000000000000000000000000000000000000284600184610cf2919061387c565b81518110610d0357610d026137dc565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350610db5565b605783610d449190613847565b7f01000000000000000000000000000000000000000000000000000000000000000284600184610d74919061387c565b81518110610d8557610d846137dc565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505b600282610dc2919061387c565b91508080610dcf906138b0565b915050610ae1565b50829350505050919050565b600a8054610df0906137ab565b80601f0160208091040260200160405190810160405280929190818152602001828054610e1c906137ab565b8015610e695780601f10610e3e57610100808354040283529160200191610e69565b820191906000526020600020905b815481529060010190602001808311610e4c57829003601f168201915b505050505081565b610e7c83838361271f565b808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b606060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f3957600080fd5b82915081519050602f7f01000000000000000000000000000000000000000000000000000000000000000282600183610f7291906138f8565b81518110610f8357610f826137dc565b5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611003578080610fff906138b0565b9150505b8067ffffffffffffffff81111561101d5761101c6131d3565b5b6040519080825280601f01601f19166020018201604052801561104f5781602001600182028036833780820191505090505b50600a908161105e9190613ade565b5060005b825181101561114f5782818151811061107e5761107d6137dc565b5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f010000000000000000000000000000000000000000000000000000000000000002600a8281546110d6906137ab565b81106110e5576110e46137dc565b5b8154600116156111045790600052602060002090602091828204019190065b601f036101000a81548160ff021916907f0100000000000000000000000000000000000000000000000000000000000000840402179055508080611147906138b0565b915050611062565b50815181146111ef577f2f00000000000000000000000000000000000000000000000000000000000000600a83518154611188906137ab565b8110611197576111966137dc565b5b8154600116156111b65790600052602060002090602091828204019190065b601f036101000a81548160ff021916907f0100000000000000000000000000000000000000000000000000000000000000840402179055505b505050565b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461124f57600080fd5b611257612da9565b6002600086815260200190815260200160002080549050915060008211156112d4576000600260008781526020019081526020016000206000815481106112a1576112a06137dc565b5b9060005260206000200160000160009054906101000a900465ffffffffffff1665ffffffffffff16116112d357600080fd5b5b83816000019065ffffffffffff16908165ffffffffffff168152505060026000868152602001908152602001600020819080600181540180825580915050600190039060005260206000200160009091909190915060008201518160000160006101000a81548165ffffffffffff021916908365ffffffffffff16021790555060208201518160000160066101000a81548165ffffffffffff021916908365ffffffffffff160217905550604082015181600001600c6101000a81548160ff0219169083151502179055505050600185908060018154018082558091505060019003906000526020600020016000909190919091505560008465ffffffffffff16036113f9576001600860008282546113ed919061387c565b9250508190555061141b565b8365ffffffffffff1660086000828254611413919061387c565b925050819055505b8365ffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fb85ba54b9f6f8241b7e1499e3cfc186ac0b1c8b7100f599bf6ca6844f896c3428760405161146a9190613137565b60405180910390a360019250505092915050565b6001818154811061148e57600080fd5b906000526020600020016000915090505481565b600260205281600052604060002081815481106114be57600080fd5b90600052602060002001600091509150508060000160009054906101000a900465ffffffffffff16908060000160069054906101000a900465ffffffffffff169080600001600c9054906101000a900460ff16905083565b600080600360008460010281526020019081526020016000205490506060819060020a026c010000000000000000000000009004915050919050565b6060806060600061156285610a84565b9150600a8054611571906137ab565b90509050808251611582919061387c565b67ffffffffffffffff81111561159b5761159a6131d3565b5b6040519080825280601f01601f1916602001820160405280156115cd5781602001600182028036833780820191505090505b50925060005b8181101561169257600a8181546115e9906137ab565b81106115f8576115f76137dc565b5b8154600116156116175790600052602060002090602091828204019190065b9054901a7f0100000000000000000000000000000000000000000000000000000000000000028482815181106116505761164f6137dc565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808061168a906138b0565b9150506115d3565b5060005b825181101561175f578281815181106116b2576116b16137dc565b5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f01000000000000000000000000000000000000000000000000000000000000000284838151811061170f5761170e6137dc565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508180611749906138b0565b9250508080611757906138b0565b915050611696565b50829350505050919050565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600780546117e5906137ab565b80601f0160208091040260200160405190810160405280929190818152602001828054611811906137ab565b801561185e5780601f106118335761010080835404028352916020019161185e565b820191906000526020600020905b81548152906001019060200180831161184157829003601f168201915b505050505081565b801561198757600073ffffffffffffffffffffffffffffffffffffffff16600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461190457600080fd5b81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611a9f565b600073ffffffffffffffffffffffffffffffffffffffff16600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611a1f57600080fd5b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611afc9190612e90565b60405180910390a35050565b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b6357600080fd5b6001600260008581526020019081526020016000208054905014611b8657600080fd5b600060026000858152602001908152602001600020600081548110611bae57611bad6137dc565b5b9060005260206000200160000160009054906101000a900465ffffffffffff1665ffffffffffff1614611be057600080fd5b6000600102600360008581526020019081526020016000205414611c0357600080fd5b8373ffffffffffffffffffffffffffffffffffffffff1690507fc000000000000000000000000000000000000000000000000000000000000000811790508060010260036000858152602001908152602001600020819055506001600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611cac919061387c565b925050819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fab8530f87dc9b59234c4623bf917212bb2536d647574c8e7e5da92c2ede0c9f88560019004604051611d14919061302b565b60405180910390a38291505092915050565b60095481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d8757600080fd5b600060149054906101000a900460ff1615611da157600080fd5b8115611dc3576001600060146101000a81548160ff0219169083151502179055505b826000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001905092915050565b611e1884848461271f565b818373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4818373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f75c9e114f073c346aac7d1d7e9a3c3c14edabcdd27de07d1d9e425f45d318c5e84611ecd90613bd5565b604051611eda9190613137565b60405180910390a450505050565b606060008260010290506000600260008381526020019081526020016000208054905011611f1557600080fd5b611f2183600102611552565b915050919050565b60608060606000611f3985610a84565b9150604767ffffffffffffffff811115611f5657611f556131d3565b5b6040519080825280601f01601f191660200182016040528015611f885781602001600182028036833780820191505090505b5092507f730000000000000000000000000000000000000000000000000000000000000083600081518110611fc057611fbf6137dc565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f680000000000000000000000000000000000000000000000000000000000000083600181518110612024576120236137dc565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f610000000000000000000000000000000000000000000000000000000000000083600281518110612088576120876137dc565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f3200000000000000000000000000000000000000000000000000000000000000836003815181106120ec576120eb6137dc565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f3500000000000000000000000000000000000000000000000000000000000000836004815181106121505761214f6137dc565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f3600000000000000000000000000000000000000000000000000000000000000836005815181106121b4576121b36137dc565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f3a0000000000000000000000000000000000000000000000000000000000000083600681518110612218576122176137dc565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506007905060005b60408110156123175782818151811061226a576122696137dc565b5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000028483815181106122c7576122c66137dc565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508180612301906138b0565b925050808061230f906138b0565b91505061224e565b50829350505050919050565b600080600260008581526020019081526020016000208361ffff168154811061234f5761234e6137dc565b5b90600052602060002001905080600001600c9054906101000a900460ff161561237757600080fd5b60008361ffff161480156123a9575060008160000160009054906101000a900465ffffffffffff1665ffffffffffff16145b156124085760018160000160068282829054906101000a900465ffffffffffff166123d49190613c3c565b92506101000a81548165ffffffffffff021916908365ffffffffffff1602179055506124008585611b08565b9150506124cf565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461246057600080fd5b8060000160009054906101000a900465ffffffffffff1665ffffffffffff168160000160069054906101000a900465ffffffffffff1665ffffffffffff16106124a857600080fd5b6124cb8585858460000160069054906101000a900465ffffffffffff1685612a36565b9150505b9392505050565b60008173ffffffffffffffffffffffffffffffffffffffff16600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905092915050565b600080600260008681526020019081526020016000208461ffff168154811061259a576125996137dc565b5b90600052602060002001905060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146125fe57600080fd5b60008160000160009054906101000a900465ffffffffffff1665ffffffffffff161161262957600080fd5b8060000160009054906101000a900465ffffffffffff1665ffffffffffff168365ffffffffffff161061265b57600080fd5b6126688686868685612a36565b915050949350505050565b6000806003600084815260200190815260200160002054905061269581612cb4565b61269e57600080fd5b6126a781612ce6565b156126b5578291505061271a565b7effffffffffffffff00000000000000000000000000000000000000000000006001028116905060b881908060020a820491505090507fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000600102831681179050809150505b919050565b60003073ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401612776919061302b565b602060405180830381865afa158015612793573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127b79190613c8b565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146127f157600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614612925573373ffffffffffffffffffffffffffffffffffffffff166004600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061291b57503373ffffffffffffffffffffffffffffffffffffffff16600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b61292457600080fd5b5b60006004600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506129828284612d18565b6001600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546129d291906138f8565b925050819055506001600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612a29919061387c565b9250508190555050505050565b6000806000807fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000008860019004169250603067ffffffffffffffff8861ffff161667ffffffffffffffff169060020a0267ffffffffffffffff16831792508565ffffffffffff16831792508260010290506000600102600360008381526020019081526020016000205414612ac957600080fd5b84600001600c9054906101000a900460ff16612b2b578460000160069054906101000a900465ffffffffffff1665ffffffffffff168665ffffffffffff1614612b2a57600185600001600c6101000a81548160ff0219169083151502179055505b5b67ffffffffffffffff886001900416915060b8829060020a0291507f8000000000000000000000000000000000000000000000000000000000000000821791508873ffffffffffffffffffffffffffffffffffffffff168217915060018560000160068282829054906101000a900465ffffffffffff16612bac9190613c3c565b92506101000a81548165ffffffffffff021916908365ffffffffffff1602179055508160010260036000838152602001908152602001600020819055506001600b60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612c39919061387c565b925050819055508873ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fab8530f87dc9b59234c4623bf917212bb2536d647574c8e7e5da92c2ede0c9f885604051612c9d919061302b565b60405180910390a380935050505095945050505050565b6000807f8000000000000000000000000000000000000000000000000000000000000000836001900416119050919050565b6000807f4000000000000000000000000000000000000000000000000000000000000000836001900416119050919050565b600080836001029050600360008281526020019081526020016000205460019004915060008203612d4857600080fd5b7fffffffffffffffffffffffff0000000000000000000000000000000000000000821691508273ffffffffffffffffffffffffffffffffffffffff168217915081600102600360008381526020019081526020016000208190555050505050565b6040518060600160405280600065ffffffffffff168152602001600065ffffffffffff1681526020016000151581525090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612e2581612df0565b8114612e3057600080fd5b50565b600081359050612e4281612e1c565b92915050565b600060208284031215612e5e57612e5d612de6565b5b6000612e6c84828501612e33565b91505092915050565b60008115159050919050565b612e8a81612e75565b82525050565b6000602082019050612ea56000830184612e81565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612ee5578082015181840152602081019050612eca565b60008484015250505050565b6000601f19601f8301169050919050565b6000612f0d82612eab565b612f178185612eb6565b9350612f27818560208601612ec7565b612f3081612ef1565b840191505092915050565b60006020820190508181036000830152612f558184612f02565b905092915050565b6000819050919050565b612f7081612f5d565b8114612f7b57600080fd5b50565b600081359050612f8d81612f67565b92915050565b600060208284031215612fa957612fa8612de6565b5b6000612fb784828501612f7e565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612feb82612fc0565b9050919050565b612ffb81612fe0565b82525050565b60006020820190506130166000830184612ff2565b92915050565b61302581612f5d565b82525050565b6000602082019050613040600083018461301c565b92915050565b61304f81612fe0565b811461305a57600080fd5b50565b60008135905061306c81613046565b92915050565b60008060006060848603121561308b5761308a612de6565b5b60006130998682870161305d565b93505060206130aa8682870161305d565b92505060406130bb86828701612f7e565b9150509250925092565b6000819050919050565b6130d8816130c5565b81146130e357600080fd5b50565b6000813590506130f5816130cf565b92915050565b60006020828403121561311157613110612de6565b5b600061311f848285016130e6565b91505092915050565b613131816130c5565b82525050565b600060208201905061314c6000830184613128565b92915050565b600081519050919050565b600082825260208201905092915050565b600061317982613152565b613183818561315d565b9350613193818560208601612ec7565b61319c81612ef1565b840191505092915050565b600060208201905081810360008301526131c1818461316e565b905092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61320b82612ef1565b810181811067ffffffffffffffff8211171561322a576132296131d3565b5b80604052505050565b600061323d612ddc565b90506132498282613202565b919050565b600067ffffffffffffffff821115613269576132686131d3565b5b61327282612ef1565b9050602081019050919050565b82818337600083830152505050565b60006132a161329c8461324e565b613233565b9050828152602081018484840111156132bd576132bc6131ce565b5b6132c884828561327f565b509392505050565b600082601f8301126132e5576132e46131c9565b5b81356132f584826020860161328e565b91505092915050565b60006020828403121561331457613313612de6565b5b600082013567ffffffffffffffff81111561333257613331612deb565b5b61333e848285016132d0565b91505092915050565b600065ffffffffffff82169050919050565b61336281613347565b811461336d57600080fd5b50565b60008135905061337f81613359565b92915050565b6000806040838503121561339c5761339b612de6565b5b60006133aa858286016130e6565b92505060206133bb85828601613370565b9150509250929050565b600080604083850312156133dc576133db612de6565b5b60006133ea858286016130e6565b92505060206133fb85828601612f7e565b9150509250929050565b61340e81613347565b82525050565b60006060820190506134296000830186613405565b6134366020830185613405565b6134436040830184612e81565b949350505050565b60006020828403121561346157613460612de6565b5b600061346f8482850161305d565b91505092915050565b61348181612e75565b811461348c57600080fd5b50565b60008135905061349e81613478565b92915050565b600080604083850312156134bb576134ba612de6565b5b60006134c98582860161305d565b92505060206134da8582860161348f565b9150509250929050565b600080604083850312156134fb576134fa612de6565b5b60006135098582860161305d565b925050602061351a858286016130e6565b9150509250929050565b600067ffffffffffffffff82111561353f5761353e6131d3565b5b61354882612ef1565b9050602081019050919050565b600061356861356384613524565b613233565b905082815260208101848484011115613584576135836131ce565b5b61358f84828561327f565b509392505050565b600082601f8301126135ac576135ab6131c9565b5b81356135bc848260208601613555565b91505092915050565b600080600080608085870312156135df576135de612de6565b5b60006135ed8782880161305d565b94505060206135fe8782880161305d565b935050604061360f87828801612f7e565b925050606085013567ffffffffffffffff8111156136305761362f612deb565b5b61363c87828801613597565b91505092959194509250565b600061ffff82169050919050565b61365f81613648565b811461366a57600080fd5b50565b60008135905061367c81613656565b92915050565b60008060006060848603121561369b5761369a612de6565b5b60006136a98682870161305d565b93505060206136ba868287016130e6565b92505060406136cb8682870161366d565b9150509250925092565b600080604083850312156136ec576136eb612de6565b5b60006136fa8582860161305d565b925050602061370b8582860161305d565b9150509250929050565b6000806000806080858703121561372f5761372e612de6565b5b600061373d8782880161305d565b945050602061374e878288016130e6565b935050604061375f8782880161366d565b925050606061377087828801613370565b91505092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806137c357607f821691505b6020821081036137d6576137d561377c565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006138528261380b565b915061385d8361380b565b9250828201905060ff81111561387657613875613818565b5b92915050565b600061388782612f5d565b915061389283612f5d565b92508282019050808211156138aa576138a9613818565b5b92915050565b60006138bb82612f5d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036138ed576138ec613818565b5b600182019050919050565b600061390382612f5d565b915061390e83612f5d565b925082820390508181111561392657613925613818565b5b92915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b60008160020a8302905092915050565b6000600883026139917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613951565b61399b8683613951565b95508019841693508086168417925050509392505050565b6000819050919050565b60006139d86139d36139ce84612f5d565b6139b3565b612f5d565b9050919050565b6000819050919050565b6139f2836139bd565b613a066139fe826139df565b848454613961565b825550505050565b600090565b613a1b613a0e565b613a268184846139e9565b505050565b5b81811015613a4a57613a3f600082613a13565b600181019050613a2c565b5050565b601f821115613a8f57613a608161392c565b613a6984613941565b81016020851015613a78578190505b613a8c613a8485613941565b830182613a2b565b50505b505050565b60008160020a8304905092915050565b6000613ab560001984600802613a94565b1980831691505092915050565b6000613ace8383613aa4565b9150826002028217905092915050565b613ae782613152565b67ffffffffffffffff811115613b0057613aff6131d3565b5b613b0a82546137ab565b613b15828285613a4e565b600060209050601f831160018114613b485760008415613b36578287015190505b613b408582613ac2565b865550613ba8565b601f198416613b568661392c565b60005b82811015613b7e57848901518255600182019150602085019450602081019050613b59565b86831015613b9b5784890151613b97601f891682613aa4565b8355505b6001600288020188555050505b505050505050565b6000819050602082019050919050565b6000613bcc82516130c5565b80915050919050565b6000613be082613152565b82613bea84613bb0565b9050613bf581613bc0565b92506020821015613c3557613c307fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83602003600802613951565b831692505b5050919050565b6000613c4782613347565b9150613c5283613347565b9250828201905065ffffffffffff811115613c7057613c6f613818565b5b92915050565b600081519050613c8581613046565b92915050565b600060208284031215613ca157613ca0612de6565b5b6000613caf84828501613c76565b9150509291505056fea264697066735822122068552215e0e6a8df402cfef150f4f27d29f7e142d614f38c9d6fc5998835ea9264736f6c63430008110033 -\ No newline at end of file +60806040523480156200001157600080fd5b506040516200437a3803806200437a833981810160405281019062000037919062000279565b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060098190555082600690816200008f919062000564565b508160079081620000a1919062000564565b505050506200064b565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200011482620000c9565b810181811067ffffffffffffffff82111715620001365762000135620000da565b5b80604052505050565b60006200014b620000ab565b905062000159828262000109565b919050565b600067ffffffffffffffff8211156200017c576200017b620000da565b5b6200018782620000c9565b9050602081019050919050565b60005b83811015620001b457808201518184015260208101905062000197565b60008484015250505050565b6000620001d7620001d1846200015e565b6200013f565b905082815260208101848484011115620001f657620001f5620000c4565b5b6200020384828562000194565b509392505050565b600082601f830112620002235762000222620000bf565b5b815162000235848260208601620001c0565b91505092915050565b6000819050919050565b62000253816200023e565b81146200025f57600080fd5b50565b600081519050620002738162000248565b92915050565b600080600060608486031215620002955762000294620000b5565b5b600084015167ffffffffffffffff811115620002b657620002b5620000ba565b5b620002c4868287016200020b565b935050602084015167ffffffffffffffff811115620002e857620002e7620000ba565b5b620002f6868287016200020b565b9250506040620003098682870162000262565b9150509250925092565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200036657607f821691505b6020821081036200037c576200037b6200031e565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b60008160020a8302905092915050565b600060088302620003e97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620003a7565b620003f58683620003a7565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620004426200043c62000436846200040d565b62000417565b6200040d565b9050919050565b6000819050919050565b6200045e8362000421565b620004766200046d8262000449565b848454620003b7565b825550505050565b600090565b6200048d6200047e565b6200049a81848462000453565b505050565b5b81811015620004c257620004b660008262000483565b600181019050620004a0565b5050565b601f8211156200051157620004db8162000382565b620004e68462000397565b81016020851015620004f6578190505b6200050e620005058562000397565b8301826200049f565b50505b505050565b60008160020a8304905092915050565b6000620005396000198460080262000516565b1980831691505092915050565b600062000554838362000526565b9150826002028217905092915050565b6200056f8262000313565b67ffffffffffffffff8111156200058b576200058a620000da565b5b6200059782546200034d565b620005a4828285620004c6565b600060209050601f831160018114620005dc5760008415620005c7578287015190505b620005d3858262000546565b86555062000643565b601f198416620005ec8662000382565b60005b828110156200061657848901518255600182019150602085019450602081019050620005ef565b8683101562000636578489015162000632601f89168262000526565b8355505b6001600288020188555050505b505050505050565b613d1f806200065b6000396000f3fe6080604052600436106101df576000357c01000000000000000000000000000000000000000000000000000000009004806369e85c7111610114578063b242e534116100b2578063d824ee4f11610081578063d824ee4f146106e4578063e985e9c514610721578063f117e1731461075e578063f9613ab21461079b576101df565b8063b242e53414610611578063b88d4fde1461064e578063c87b56dd1461066a578063c9796c39146106a7576101df565b806395d89b41116100ee57806395d89b4114610555578063a22cb46514610580578063adf288df146105a9578063b1a6afd3146105e6576101df565b806369e85c71146104b057806370a08231146104ed5780638da5cb5b1461052a576101df565b806340c84b0e116101815780634d03546a1161015b5780634d03546a146103ba5780634f64b2be146103f7578063559f5dc9146104345780636352211e14610473576101df565b806340c84b0e1461034a57806342842e0e1461037557806349f2553a14610391576101df565b806318160ddd116101bd57806318160ddd1461028957806323b872dd146102b457806324e0febc146102d05780633fd2f5931461030d576101df565b806301ffc9a7146101e457806306fdde0314610221578063081812fc1461024c575b600080fd5b3480156101f057600080fd5b5061020b60048036038101906102069190612e79565b6107d8565b6040516102189190612ec1565b60405180910390f35b34801561022d57600080fd5b5061023661092c565b6040516102439190612f6c565b60405180910390f35b34801561025857600080fd5b50610273600480360381019061026e9190612fc4565b6109ba565b6040516102809190613032565b60405180910390f35b34801561029557600080fd5b5061029e6109f7565b6040516102ab919061305c565b60405180910390f35b6102ce60048036038101906102c991906130a3565b610a01565b005b3480156102dc57600080fd5b506102f760048036038101906102f2919061312c565b610a6c565b6040516103049190613168565b60405180910390f35b34801561031957600080fd5b50610334600480360381019061032f919061312c565b610a84565b60405161034191906131d8565b60405180910390f35b34801561035657600080fd5b5061035f610de3565b60405161036c91906131d8565b60405180910390f35b61038f600480360381019061038a91906130a3565b610e71565b005b34801561039d57600080fd5b506103b860048036038101906103b3919061332f565b610edc565b005b3480156103c657600080fd5b506103e160048036038101906103dc91906133b6565b6111f4565b6040516103ee9190612ec1565b60405180910390f35b34801561040357600080fd5b5061041e60048036038101906104199190612fc4565b61147e565b60405161042b9190613168565b60405180910390f35b34801561044057600080fd5b5061045b600480360381019061045691906133f6565b6114a2565b60405161046a93929190613445565b60405180910390f35b34801561047f57600080fd5b5061049a60048036038101906104959190612fc4565b611516565b6040516104a79190613032565b60405180910390f35b3480156104bc57600080fd5b506104d760048036038101906104d2919061312c565b611552565b6040516104e49190612f6c565b60405180910390f35b3480156104f957600080fd5b50610514600480360381019061050f919061347c565b61176b565b604051610521919061305c565b60405180910390f35b34801561053657600080fd5b5061053f6117b4565b60405161054c9190613032565b60405180910390f35b34801561056157600080fd5b5061056a6117d8565b6040516105779190612f6c565b60405180910390f35b34801561058c57600080fd5b506105a760048036038101906105a291906134d5565b611866565b005b3480156105b557600080fd5b506105d060048036038101906105cb9190613515565b611b08565b6040516105dd9190613168565b60405180910390f35b3480156105f257600080fd5b506105fb611d26565b6040516106089190613168565b60405180910390f35b34801561061d57600080fd5b50610638600480360381019061063391906134d5565b611d2c565b6040516106459190612ec1565b60405180910390f35b610668600480360381019061066391906135f6565b611e0d565b005b34801561067657600080fd5b50610691600480360381019061068c9190612fc4565b611ee8565b60405161069e9190612f6c565b60405180910390f35b3480156106b357600080fd5b506106ce60048036038101906106c9919061312c565b611f5a565b6040516106db9190612f6c565b60405180910390f35b3480156106f057600080fd5b5061070b600480360381019061070691906136b3565b612354565b6040516107189190613168565b60405180910390f35b34801561072d57600080fd5b5061074860048036038101906107439190613706565b612507565b6040516107559190612ec1565b60405180910390f35b34801561076a57600080fd5b5061078560048036038101906107809190613746565b61259f565b6040516107929190613168565b60405180910390f35b3480156107a757600080fd5b506107c260048036038101906107bd919061312c565b6126a4565b6040516107cf9190613168565b60405180910390f35b60006380ac58cd7c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19160361082c5760019050610927565b635b5e139f7c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19160361087e5760019050610927565b63449a52f87c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916036108d05760019050610927565b6301ffc9a77c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916036109225760019050610927565b600090505b919050565b60068054610939906137dc565b80601f0160208091040260200160405190810160405280929190818152602001828054610965906137dc565b80156109b25780601f10610987576101008083540402835291602001916109b2565b820191906000526020600020905b81548152906001019060200180831161099557829003601f168201915b505050505081565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600854905090565b610a0c838383612750565b808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b60036020528060005260406000206000915090505481565b606080600080604067ffffffffffffffff811115610aa557610aa4613204565b5b6040519080825280601f01601f191660200182016040528015610ad75781602001600182028036833780820191505090505b5092506000905060005b6020811015610dd757600460f0878360208110610b0157610b0061380d565b5b1a7f0100000000000000000000000000000000000000000000000000000000000000027f010000000000000000000000000000000000000000000000000000000000000090041660ff16908060020a82049150509250600a8360ff161015610bd957603083610b709190613878565b7f010000000000000000000000000000000000000000000000000000000000000002848381518110610ba557610ba461380d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350610c4b565b605783610be69190613878565b7f010000000000000000000000000000000000000000000000000000000000000002848381518110610c1b57610c1a61380d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505b600f868260208110610c6057610c5f61380d565b5b1a7f0100000000000000000000000000000000000000000000000000000000000000027f01000000000000000000000000000000000000000000000000000000000000009004169250600a8360ff161015610d3757603083610cc29190613878565b7f01000000000000000000000000000000000000000000000000000000000000000284600184610cf291906138ad565b81518110610d0357610d0261380d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350610db5565b605783610d449190613878565b7f01000000000000000000000000000000000000000000000000000000000000000284600184610d7491906138ad565b81518110610d8557610d8461380d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505b600282610dc291906138ad565b91508080610dcf906138e1565b915050610ae1565b50829350505050919050565b600a8054610df0906137dc565b80601f0160208091040260200160405190810160405280929190818152602001828054610e1c906137dc565b8015610e695780601f10610e3e57610100808354040283529160200191610e69565b820191906000526020600020905b815481529060010190602001808311610e4c57829003601f168201915b505050505081565b610e7c838383612750565b808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b606060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f3957600080fd5b82915081519050602f7f01000000000000000000000000000000000000000000000000000000000000000282600183610f729190613929565b81518110610f8357610f8261380d565b5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611003578080610fff906138e1565b9150505b8067ffffffffffffffff81111561101d5761101c613204565b5b6040519080825280601f01601f19166020018201604052801561104f5781602001600182028036833780820191505090505b50600a908161105e9190613b0f565b5060005b825181101561114f5782818151811061107e5761107d61380d565b5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f010000000000000000000000000000000000000000000000000000000000000002600a8281546110d6906137dc565b81106110e5576110e461380d565b5b8154600116156111045790600052602060002090602091828204019190065b601f036101000a81548160ff021916907f0100000000000000000000000000000000000000000000000000000000000000840402179055508080611147906138e1565b915050611062565b50815181146111ef577f2f00000000000000000000000000000000000000000000000000000000000000600a83518154611188906137dc565b81106111975761119661380d565b5b8154600116156111b65790600052602060002090602091828204019190065b601f036101000a81548160ff021916907f0100000000000000000000000000000000000000000000000000000000000000840402179055505b505050565b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461124f57600080fd5b611257612dda565b6002600086815260200190815260200160002080549050915060008211156112d4576000600260008781526020019081526020016000206000815481106112a1576112a061380d565b5b9060005260206000200160000160009054906101000a900465ffffffffffff1665ffffffffffff16116112d357600080fd5b5b83816000019065ffffffffffff16908165ffffffffffff168152505060026000868152602001908152602001600020819080600181540180825580915050600190039060005260206000200160009091909190915060008201518160000160006101000a81548165ffffffffffff021916908365ffffffffffff16021790555060208201518160000160066101000a81548165ffffffffffff021916908365ffffffffffff160217905550604082015181600001600c6101000a81548160ff0219169083151502179055505050600185908060018154018082558091505060019003906000526020600020016000909190919091505560008465ffffffffffff16036113f9576001600860008282546113ed91906138ad565b9250508190555061141b565b8365ffffffffffff166008600082825461141391906138ad565b925050819055505b8365ffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fb85ba54b9f6f8241b7e1499e3cfc186ac0b1c8b7100f599bf6ca6844f896c3428760405161146a9190613168565b60405180910390a360019250505092915050565b6001818154811061148e57600080fd5b906000526020600020016000915090505481565b600260205281600052604060002081815481106114be57600080fd5b90600052602060002001600091509150508060000160009054906101000a900465ffffffffffff16908060000160069054906101000a900465ffffffffffff169080600001600c9054906101000a900460ff16905083565b600080600360008460010281526020019081526020016000205490506060819060020a026c010000000000000000000000009004915050919050565b6060806060600061156285610a84565b9150600a8054611571906137dc565b9050905080825161158291906138ad565b67ffffffffffffffff81111561159b5761159a613204565b5b6040519080825280601f01601f1916602001820160405280156115cd5781602001600182028036833780820191505090505b50925060005b8181101561169257600a8181546115e9906137dc565b81106115f8576115f761380d565b5b8154600116156116175790600052602060002090602091828204019190065b9054901a7f0100000000000000000000000000000000000000000000000000000000000000028482815181106116505761164f61380d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808061168a906138e1565b9150506115d3565b5060005b825181101561175f578281815181106116b2576116b161380d565b5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f01000000000000000000000000000000000000000000000000000000000000000284838151811061170f5761170e61380d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508180611749906138e1565b9250508080611757906138e1565b915050611696565b50829350505050919050565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600780546117e5906137dc565b80601f0160208091040260200160405190810160405280929190818152602001828054611811906137dc565b801561185e5780601f106118335761010080835404028352916020019161185e565b820191906000526020600020905b81548152906001019060200180831161184157829003601f168201915b505050505081565b801561198757600073ffffffffffffffffffffffffffffffffffffffff16600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461190457600080fd5b81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611a9f565b600073ffffffffffffffffffffffffffffffffffffffff16600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611a1f57600080fd5b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611afc9190612ec1565b60405180910390a35050565b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b6357600080fd5b6001600260008581526020019081526020016000208054905014611b8657600080fd5b600060026000858152602001908152602001600020600081548110611bae57611bad61380d565b5b9060005260206000200160000160009054906101000a900465ffffffffffff1665ffffffffffff1614611be057600080fd5b6000600102600360008581526020019081526020016000205414611c0357600080fd5b8373ffffffffffffffffffffffffffffffffffffffff1690507fc000000000000000000000000000000000000000000000000000000000000000811790508060010260036000858152602001908152602001600020819055506001600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611cac91906138ad565b925050819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fab8530f87dc9b59234c4623bf917212bb2536d647574c8e7e5da92c2ede0c9f88560019004604051611d14919061305c565b60405180910390a38291505092915050565b60095481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d8757600080fd5b600060149054906101000a900460ff1615611da157600080fd5b8115611dc3576001600060146101000a81548160ff0219169083151502179055505b826000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001905092915050565b611e18848484612750565b818373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4818373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f75c9e114f073c346aac7d1d7e9a3c3c14edabcdd27de07d1d9e425f45d318c5e84611ecd90613c06565b604051611eda9190613168565b60405180910390a450505050565b606060008260010290506000600260008381526020019081526020016000208054905003611f2357611f19816126a4565b9050806001900492505b6000600260008381526020019081526020016000208054905011611f4657600080fd5b611f5283600102611552565b915050919050565b60608060606000611f6a85610a84565b9150604767ffffffffffffffff811115611f8757611f86613204565b5b6040519080825280601f01601f191660200182016040528015611fb95781602001600182028036833780820191505090505b5092507f730000000000000000000000000000000000000000000000000000000000000083600081518110611ff157611ff061380d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f6800000000000000000000000000000000000000000000000000000000000000836001815181106120555761205461380d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f6100000000000000000000000000000000000000000000000000000000000000836002815181106120b9576120b861380d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f32000000000000000000000000000000000000000000000000000000000000008360038151811061211d5761211c61380d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f3500000000000000000000000000000000000000000000000000000000000000836004815181106121815761218061380d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f3600000000000000000000000000000000000000000000000000000000000000836005815181106121e5576121e461380d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f3a00000000000000000000000000000000000000000000000000000000000000836006815181106122495761224861380d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506007905060005b60408110156123485782818151811061229b5761229a61380d565b5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000028483815181106122f8576122f761380d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508180612332906138e1565b9250508080612340906138e1565b91505061227f565b50829350505050919050565b600080600260008581526020019081526020016000208361ffff16815481106123805761237f61380d565b5b90600052602060002001905080600001600c9054906101000a900460ff16156123a857600080fd5b60008361ffff161480156123da575060008160000160009054906101000a900465ffffffffffff1665ffffffffffff16145b156124395760018160000160068282829054906101000a900465ffffffffffff166124059190613c6d565b92506101000a81548165ffffffffffff021916908365ffffffffffff1602179055506124318585611b08565b915050612500565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461249157600080fd5b8060000160009054906101000a900465ffffffffffff1665ffffffffffff168160000160069054906101000a900465ffffffffffff1665ffffffffffff16106124d957600080fd5b6124fc8585858460000160069054906101000a900465ffffffffffff1685612a67565b9150505b9392505050565b60008173ffffffffffffffffffffffffffffffffffffffff16600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905092915050565b600080600260008681526020019081526020016000208461ffff16815481106125cb576125ca61380d565b5b90600052602060002001905060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461262f57600080fd5b60008160000160009054906101000a900465ffffffffffff1665ffffffffffff161161265a57600080fd5b8060000160009054906101000a900465ffffffffffff1665ffffffffffff168365ffffffffffff161061268c57600080fd5b6126998686868685612a67565b915050949350505050565b600080600360008481526020019081526020016000205490506126c681612ce5565b6126cf57600080fd5b6126d881612d17565b156126e6578291505061274b565b7effffffffffffffff00000000000000000000000000000000000000000000006001028116905060b881908060020a820491505090507fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000600102831681179050809150505b919050565b60003073ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016127a7919061305c565b602060405180830381865afa1580156127c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e89190613cbc565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461282257600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614612956573373ffffffffffffffffffffffffffffffffffffffff166004600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061294c57503373ffffffffffffffffffffffffffffffffffffffff16600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b61295557600080fd5b5b60006004600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506129b38284612d49565b6001600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612a039190613929565b925050819055506001600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612a5a91906138ad565b9250508190555050505050565b6000806000807fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000008860019004169250603067ffffffffffffffff8861ffff161667ffffffffffffffff169060020a0267ffffffffffffffff16831792508565ffffffffffff16831792508260010290506000600102600360008381526020019081526020016000205414612afa57600080fd5b84600001600c9054906101000a900460ff16612b5c578460000160069054906101000a900465ffffffffffff1665ffffffffffff168665ffffffffffff1614612b5b57600185600001600c6101000a81548160ff0219169083151502179055505b5b67ffffffffffffffff886001900416915060b8829060020a0291507f8000000000000000000000000000000000000000000000000000000000000000821791508873ffffffffffffffffffffffffffffffffffffffff168217915060018560000160068282829054906101000a900465ffffffffffff16612bdd9190613c6d565b92506101000a81548165ffffffffffff021916908365ffffffffffff1602179055508160010260036000838152602001908152602001600020819055506001600b60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612c6a91906138ad565b925050819055508873ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fab8530f87dc9b59234c4623bf917212bb2536d647574c8e7e5da92c2ede0c9f885604051612cce919061305c565b60405180910390a380935050505095945050505050565b6000807f8000000000000000000000000000000000000000000000000000000000000000836001900416119050919050565b6000807f4000000000000000000000000000000000000000000000000000000000000000836001900416119050919050565b600080836001029050600360008281526020019081526020016000205460019004915060008203612d7957600080fd5b7fffffffffffffffffffffffff0000000000000000000000000000000000000000821691508273ffffffffffffffffffffffffffffffffffffffff168217915081600102600360008381526020019081526020016000208190555050505050565b6040518060600160405280600065ffffffffffff168152602001600065ffffffffffff1681526020016000151581525090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612e5681612e21565b8114612e6157600080fd5b50565b600081359050612e7381612e4d565b92915050565b600060208284031215612e8f57612e8e612e17565b5b6000612e9d84828501612e64565b91505092915050565b60008115159050919050565b612ebb81612ea6565b82525050565b6000602082019050612ed66000830184612eb2565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612f16578082015181840152602081019050612efb565b60008484015250505050565b6000601f19601f8301169050919050565b6000612f3e82612edc565b612f488185612ee7565b9350612f58818560208601612ef8565b612f6181612f22565b840191505092915050565b60006020820190508181036000830152612f868184612f33565b905092915050565b6000819050919050565b612fa181612f8e565b8114612fac57600080fd5b50565b600081359050612fbe81612f98565b92915050565b600060208284031215612fda57612fd9612e17565b5b6000612fe884828501612faf565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061301c82612ff1565b9050919050565b61302c81613011565b82525050565b60006020820190506130476000830184613023565b92915050565b61305681612f8e565b82525050565b6000602082019050613071600083018461304d565b92915050565b61308081613011565b811461308b57600080fd5b50565b60008135905061309d81613077565b92915050565b6000806000606084860312156130bc576130bb612e17565b5b60006130ca8682870161308e565b93505060206130db8682870161308e565b92505060406130ec86828701612faf565b9150509250925092565b6000819050919050565b613109816130f6565b811461311457600080fd5b50565b60008135905061312681613100565b92915050565b60006020828403121561314257613141612e17565b5b600061315084828501613117565b91505092915050565b613162816130f6565b82525050565b600060208201905061317d6000830184613159565b92915050565b600081519050919050565b600082825260208201905092915050565b60006131aa82613183565b6131b4818561318e565b93506131c4818560208601612ef8565b6131cd81612f22565b840191505092915050565b600060208201905081810360008301526131f2818461319f565b905092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61323c82612f22565b810181811067ffffffffffffffff8211171561325b5761325a613204565b5b80604052505050565b600061326e612e0d565b905061327a8282613233565b919050565b600067ffffffffffffffff82111561329a57613299613204565b5b6132a382612f22565b9050602081019050919050565b82818337600083830152505050565b60006132d26132cd8461327f565b613264565b9050828152602081018484840111156132ee576132ed6131ff565b5b6132f98482856132b0565b509392505050565b600082601f830112613316576133156131fa565b5b81356133268482602086016132bf565b91505092915050565b60006020828403121561334557613344612e17565b5b600082013567ffffffffffffffff81111561336357613362612e1c565b5b61336f84828501613301565b91505092915050565b600065ffffffffffff82169050919050565b61339381613378565b811461339e57600080fd5b50565b6000813590506133b08161338a565b92915050565b600080604083850312156133cd576133cc612e17565b5b60006133db85828601613117565b92505060206133ec858286016133a1565b9150509250929050565b6000806040838503121561340d5761340c612e17565b5b600061341b85828601613117565b925050602061342c85828601612faf565b9150509250929050565b61343f81613378565b82525050565b600060608201905061345a6000830186613436565b6134676020830185613436565b6134746040830184612eb2565b949350505050565b60006020828403121561349257613491612e17565b5b60006134a08482850161308e565b91505092915050565b6134b281612ea6565b81146134bd57600080fd5b50565b6000813590506134cf816134a9565b92915050565b600080604083850312156134ec576134eb612e17565b5b60006134fa8582860161308e565b925050602061350b858286016134c0565b9150509250929050565b6000806040838503121561352c5761352b612e17565b5b600061353a8582860161308e565b925050602061354b85828601613117565b9150509250929050565b600067ffffffffffffffff8211156135705761356f613204565b5b61357982612f22565b9050602081019050919050565b600061359961359484613555565b613264565b9050828152602081018484840111156135b5576135b46131ff565b5b6135c08482856132b0565b509392505050565b600082601f8301126135dd576135dc6131fa565b5b81356135ed848260208601613586565b91505092915050565b600080600080608085870312156136105761360f612e17565b5b600061361e8782880161308e565b945050602061362f8782880161308e565b935050604061364087828801612faf565b925050606085013567ffffffffffffffff81111561366157613660612e1c565b5b61366d878288016135c8565b91505092959194509250565b600061ffff82169050919050565b61369081613679565b811461369b57600080fd5b50565b6000813590506136ad81613687565b92915050565b6000806000606084860312156136cc576136cb612e17565b5b60006136da8682870161308e565b93505060206136eb86828701613117565b92505060406136fc8682870161369e565b9150509250925092565b6000806040838503121561371d5761371c612e17565b5b600061372b8582860161308e565b925050602061373c8582860161308e565b9150509250929050565b600080600080608085870312156137605761375f612e17565b5b600061376e8782880161308e565b945050602061377f87828801613117565b93505060406137908782880161369e565b92505060606137a1878288016133a1565b91505092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806137f457607f821691505b602082108103613807576138066137ad565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006138838261383c565b915061388e8361383c565b9250828201905060ff8111156138a7576138a6613849565b5b92915050565b60006138b882612f8e565b91506138c383612f8e565b92508282019050808211156138db576138da613849565b5b92915050565b60006138ec82612f8e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361391e5761391d613849565b5b600182019050919050565b600061393482612f8e565b915061393f83612f8e565b925082820390508181111561395757613956613849565b5b92915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b60008160020a8302905092915050565b6000600883026139c27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613982565b6139cc8683613982565b95508019841693508086168417925050509392505050565b6000819050919050565b6000613a09613a046139ff84612f8e565b6139e4565b612f8e565b9050919050565b6000819050919050565b613a23836139ee565b613a37613a2f82613a10565b848454613992565b825550505050565b600090565b613a4c613a3f565b613a57818484613a1a565b505050565b5b81811015613a7b57613a70600082613a44565b600181019050613a5d565b5050565b601f821115613ac057613a918161395d565b613a9a84613972565b81016020851015613aa9578190505b613abd613ab585613972565b830182613a5c565b50505b505050565b60008160020a8304905092915050565b6000613ae660001984600802613ac5565b1980831691505092915050565b6000613aff8383613ad5565b9150826002028217905092915050565b613b1882613183565b67ffffffffffffffff811115613b3157613b30613204565b5b613b3b82546137dc565b613b46828285613a7f565b600060209050601f831160018114613b795760008415613b67578287015190505b613b718582613af3565b865550613bd9565b601f198416613b878661395d565b60005b82811015613baf57848901518255600182019150602085019450602081019050613b8a565b86831015613bcc5784890151613bc8601f891682613ad5565b8355505b6001600288020188555050505b505050505050565b6000819050602082019050919050565b6000613bfd82516130f6565b80915050919050565b6000613c1182613183565b82613c1b84613be1565b9050613c2681613bf1565b92506020821015613c6657613c617fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83602003600802613982565b831692505b5050919050565b6000613c7882613378565b9150613c8383613378565b9250828201905065ffffffffffff811115613ca157613ca0613849565b5b92915050565b600081519050613cb681613077565b92915050565b600060208284031215613cd257613cd1612e17565b5b6000613ce084828501613ca7565b9150509291505056fea2646970667358221220a61ab7da49ebc6608666d52010ac708bffa9f8c1c0c76f149381a0a6304083bd64736f6c63430008110033 +\ No newline at end of file diff --git a/python/tests/test_numbered.py b/python/tests/test_numbered.py @@ -84,10 +84,11 @@ class Test(EthTesterCase): r = self.conn.do(o) self.assertEqual(r['status'], 1) - expected_id = hash_of_foo[:64-10] + '000000029a' + expected_id = hash_of_foo[:64-16] + '000000000000029a' o = c.get_token(self.address, expected_id, sender_address=self.accounts[0]) r = self.rpc.do(o) - content = c.parse_token(r, hash_of_foo) + content = c.parse_token(r, expected_id) + self.assertEqual(content.token_id, hash_of_foo); (tx_hash_hex, o) = c.mint_to(self.address, self.accounts[0], self.accounts[9], hash_of_foo, 0, index=666) self.rpc.do(o) diff --git a/python/tests/test_uri.py b/python/tests/test_uri.py @@ -110,5 +110,28 @@ class TestURI(EthTesterCase): self.assertEqual('https://example.org/' + hash_of_bar, uri) + def test_batch_to_uri(self): + nonce_oracle = RPCNonceOracle(self.accounts[0], self.rpc) + c = CraftNFT(self.chain_spec, signer=self.signer, nonce_oracle=nonce_oracle) + + (tx_hash_hex, o) = c.allocate(self.address, self.accounts[0], hash_of_foo, amount=1000) + self.rpc.do(o) + o = receipt(tx_hash_hex) + r = self.conn.do(o) + self.assertEqual(r['status'], 1) + + (tx_hash_hex, o) = c.mint_to(self.address, self.accounts[0], self.accounts[9], hash_of_foo, 0, index=666) + self.rpc.do(o) + o = receipt(tx_hash_hex) + r = self.conn.do(o) + self.assertEqual(r['status'], 1) + token_batch_id = hash_of_foo[:64-16] + '000000000000029a' + + o = c.token_uri(self.address, int(token_batch_id, 16), sender_address=self.accounts[0]) + r = self.rpc.do(o) + uri = c.parse_uri(r) + self.assertEqual(hash_of_foo, uri) + + if __name__ == '__main__': unittest.main() diff --git a/solidity/CraftNFT.sol b/solidity/CraftNFT.sol @@ -433,6 +433,10 @@ contract CraftNFT { _tokenIdBytes = bytes32(_tokenId); + if (token[_tokenIdBytes].length == 0) { + _tokenIdBytes = getDigest(_tokenIdBytes); + _tokenId = uint256(_tokenIdBytes); + } require(token[_tokenIdBytes].length > 0); return toURL(bytes32(_tokenId)); }