aiia-vault-sdk 1.2.1 → 1.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -21,6 +21,10 @@ export interface ReferralPaidEvent {
21
21
  level: number;
22
22
  originalAmount: number;
23
23
  }
24
+ export interface ReferralCodeSetEvent {
25
+ user: string;
26
+ referralCode: string;
27
+ }
24
28
  /**
25
29
  * SDK for interacting with the MultiLevelReferralNFT smart contract
26
30
  *
@@ -125,6 +129,17 @@ export declare class MultiLevelReferralNFTSDK {
125
129
  * @returns The user's referral code
126
130
  */
127
131
  getUserReferralCode(user: string): Promise<string>;
132
+ /**
133
+ * Builds a transaction to generate a referral code for the caller
134
+ * @returns Populated transaction
135
+ */
136
+ buildGenerateReferralCodeTx(): Promise<ethers.ContractTransaction>;
137
+ /**
138
+ * Builds a transaction to generate a referral code for a specific user (owner only)
139
+ * @param user - The address of the user to generate a referral code for
140
+ * @returns Populated transaction
141
+ */
142
+ buildGenerateReferralCodeForUserTx(user: string): Promise<ethers.ContractTransaction>;
128
143
  /**
129
144
  * Builds a transaction to set the NFT price
130
145
  * @param price - The new price in ETH
@@ -143,6 +158,21 @@ export declare class MultiLevelReferralNFTSDK {
143
158
  * @returns Populated transaction
144
159
  */
145
160
  buildWithdrawTx(amount: number): Promise<ethers.ContractTransaction>;
161
+ /**
162
+ * Builds a transaction to mint an NFT directly to a recipient
163
+ *
164
+ * @param recipient - The address to receive the minted NFT
165
+ * @returns A populated transaction that can be signed and sent
166
+ */
167
+ buildMintToTx(recipient: string): Promise<ethers.ContractTransaction>;
168
+ /**
169
+ * Builds a transaction to mint multiple NFTs to a single recipient in a single transaction
170
+ *
171
+ * @param recipient - Address to receive the minted NFTs
172
+ * @param amount - Number of NFTs to mint for the recipient
173
+ * @returns A populated transaction that can be signed and sent
174
+ */
175
+ buildBatchMintTx(recipient: string, amount: number): Promise<ethers.ContractTransaction>;
146
176
  /**
147
177
  * Gets the contract owner address
148
178
  * @returns The owner's address
@@ -1 +1 @@
1
- "use strict";var e=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.MultiLevelReferralNFTSDK=void 0;const r=require("ethers"),t=e(require("./abis/MultiLevelReferralNFT.json")),s=e(require("./contracts.json")),a=require("./utils");exports.MultiLevelReferralNFTSDK=class{constructor(e,n){this.name="MultiLevelReferralNFT",this.isBootstrapped=!1,this.formatEventArgs=e=>{const{eventName:t,args:s}=e;switch(t){case"NFTMinted":return{...e,args:{...s,owner:s.owner.toLowerCase(),tokenId:Number(s.tokenId)}};case"ReferrerSet":return{...e,args:{...s,referrer:s.referrer.toLowerCase(),referee:s.referee.toLowerCase()}};case"ReferralPaid":return{...e,args:{...s,receiver:s.receiver.toLowerCase(),buyer:s.buyer.toLowerCase(),amount:Number(r.ethers.formatEther(s.amount)),level:Number(s.level),originalAmount:Number(r.ethers.formatEther(s.originalAmount))}};default:return e}};const o=Array.isArray(e)?e:[e];this.providers=o.map((e=>new r.ethers.JsonRpcProvider(e)));const i=(0,a.getRandomProvider)(this.providers);this.contractAddress=(0,a.resolveContractAddress)(o[0],this.name,s.default,n),this.contract=new r.ethers.Contract(this.contractAddress,t.default.abi,i)}getRandomProvider(){return(0,a.getRandomProvider)(this.providers)}getContractWithRandomProvider(){return new r.ethers.Contract(this.contractAddress,t.default.abi,this.getRandomProvider())}async bootstrap(){if(this.isBootstrapped)return;const e=await Promise.all(this.providers.map(((e,r)=>(0,a.checkRpcHealth)(e,r))));if(this.providers=this.providers.filter(((r,t)=>e[t])),0===this.providers.length)throw new Error("No active RPC providers available");this.isBootstrapped=!0}async signAndSendTransaction(e,r,t={}){return(0,a.signAndSendTransaction)(e,r,(()=>this.getRandomProvider()),t,this.contract)}async getPrice(){const e=await this.contract.price();return Number(r.ethers.formatEther(e))}async getSharePercent(){const e=await this.contract.sharePercent();return Number(e)}async getMaxReferralLevels(){const e=await this.contract.maxReferralLevels();return Number(e)}async getReferrer(e){return await this.contract.referrers(e)}async getReferralCodeOwner(e){return await this.contract.referralCodes(e)}async getUserReferralCode(e){return await this.contract.userReferralCodes(e)}async buildSetPriceTx(e){const t=r.ethers.parseEther(e.toString());return await this.contract.setPrice.populateTransaction(t)}async buildBuyNFTTx(e){const t=await this.getPrice(),s=await this.contract.buy.populateTransaction(e);return s.value=r.ethers.parseEther(t.toString()),s}async buildWithdrawTx(e){const t=r.ethers.parseEther(e.toString());return await this.contract.withdraw.populateTransaction(t)}async getOwner(){return await this.contract.owner()}getContractAddress(){return this.contractAddress}async getAllEvents(e,r,t){return await this.bootstrap(),(0,a.getAllEvents)(this.contract,(()=>this.getRandomProvider()),(()=>this.getContractWithRandomProvider()),e,r,t)}async streamEvents(e,r,t,s=1e3,n=5e3){const o=["NFTMinted","ReferrerSet","ReferralPaid"];return await this.bootstrap(),(0,a.streamEvents)({getProvider:()=>this.getRandomProvider(),getAllEvents:(e,r)=>this.getAllEvents(e,r,o),formatEvent:e=>this.formatEventArgs(e),onEvent:r,saveLatestBlock:t,fromBlock:e,batchSize:s,sleepTime:n})}};
1
+ "use strict";var e=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.MultiLevelReferralNFTSDK=void 0;const r=require("ethers"),t=e(require("./abis/MultiLevelReferralNFT.json")),a=e(require("./contracts.json")),s=require("./utils");exports.MultiLevelReferralNFTSDK=class{constructor(e,n){this.name="NFTTicket",this.isBootstrapped=!1,this.formatEventArgs=e=>{const{eventName:t,args:a}=e;switch(t){case"NFTMinted":return{...e,args:{...a,owner:a.owner.toLowerCase(),tokenId:Number(a.tokenId)}};case"ReferrerSet":return{...e,args:{...a,referrer:a.referrer.toLowerCase(),referee:a.referee.toLowerCase()}};case"ReferralPaid":return{...e,args:{...a,receiver:a.receiver.toLowerCase(),buyer:a.buyer.toLowerCase(),amount:Number(r.ethers.formatEther(a.amount)),level:Number(a.level),originalAmount:Number(r.ethers.formatEther(a.originalAmount))}};case"ReferralCodeSet":return{...e,args:{...a,user:a.user.toLowerCase(),referralCode:a.referralCode}};default:return e}};const o=Array.isArray(e)?e:[e];this.providers=o.map((e=>new r.ethers.JsonRpcProvider(e)));const i=(0,s.getRandomProvider)(this.providers);this.contractAddress=(0,s.resolveContractAddress)(o[0],this.name,a.default,n),this.contract=new r.ethers.Contract(this.contractAddress,t.default.abi,i)}getRandomProvider(){return(0,s.getRandomProvider)(this.providers)}getContractWithRandomProvider(){return new r.ethers.Contract(this.contractAddress,t.default.abi,this.getRandomProvider())}async bootstrap(){if(this.isBootstrapped)return;const e=await Promise.all(this.providers.map(((e,r)=>(0,s.checkRpcHealth)(e,r))));if(this.providers=this.providers.filter(((r,t)=>e[t])),0===this.providers.length)throw new Error("No active RPC providers available");this.isBootstrapped=!0}async signAndSendTransaction(e,r,t={}){return(0,s.signAndSendTransaction)(e,r,(()=>this.getRandomProvider()),t,this.contract)}async getPrice(){const e=await this.contract.price();return Number(r.ethers.formatEther(e))}async getSharePercent(){const e=await this.contract.sharePercent();return Number(e)}async getMaxReferralLevels(){const e=await this.contract.maxReferralLevels();return Number(e)}async getReferrer(e){return await this.contract.referrers(e)}async getReferralCodeOwner(e){return await this.contract.referralCodes(e)}async getUserReferralCode(e){return await this.contract.userReferralCodes(e)}async buildGenerateReferralCodeTx(){return await this.contract.generateReferralCode.populateTransaction()}async buildGenerateReferralCodeForUserTx(e){return await this.contract.generateReferralCodeForUser.populateTransaction(e)}async buildSetPriceTx(e){const t=r.ethers.parseEther(e.toString());return await this.contract.setPrice.populateTransaction(t)}async buildBuyNFTTx(e){const t=await this.getPrice(),a=await this.contract.buy.populateTransaction(e);return a.value=r.ethers.parseEther(t.toString()),a}async buildWithdrawTx(e){const t=r.ethers.parseEther(e.toString());return await this.contract.withdraw.populateTransaction(t)}async buildMintToTx(e){return await this.bootstrap(),this.contract.mintTo.populateTransaction(e)}async buildBatchMintTx(e,r){return await this.bootstrap(),this.contract.batchMint.populateTransaction(e,r)}async getOwner(){return await this.contract.owner()}getContractAddress(){return this.contractAddress}async getAllEvents(e,r,t){return await this.bootstrap(),(0,s.getAllEvents)(this.contract,(()=>this.getRandomProvider()),(()=>this.getContractWithRandomProvider()),e,r,t)}async streamEvents(e,r,t,a=1e3,n=5e3){const o=["NFTMinted","ReferrerSet","ReferralPaid"];return await this.bootstrap(),(0,s.streamEvents)({getProvider:()=>this.getRandomProvider(),getAllEvents:(e,r)=>this.getAllEvents(e,r,o),formatEvent:e=>this.formatEventArgs(e),onEvent:r,saveLatestBlock:t,fromBlock:e,batchSize:a,sleepTime:n})}};
@@ -132,6 +132,11 @@
132
132
  "name": "InvalidInitialization",
133
133
  "type": "error"
134
134
  },
135
+ {
136
+ "inputs": [],
137
+ "name": "InvalidRecipient",
138
+ "type": "error"
139
+ },
135
140
  {
136
141
  "inputs": [
137
142
  {
@@ -241,6 +246,19 @@
241
246
  "name": "ApprovalForAll",
242
247
  "type": "event"
243
248
  },
249
+ {
250
+ "anonymous": false,
251
+ "inputs": [
252
+ {
253
+ "indexed": false,
254
+ "internalType": "string",
255
+ "name": "newBaseURI",
256
+ "type": "string"
257
+ }
258
+ ],
259
+ "name": "BaseURIChanged",
260
+ "type": "event"
261
+ },
244
262
  {
245
263
  "anonymous": false,
246
264
  "inputs": [
@@ -410,6 +428,37 @@
410
428
  "stateMutability": "view",
411
429
  "type": "function"
412
430
  },
431
+ {
432
+ "inputs": [],
433
+ "name": "baseURI",
434
+ "outputs": [
435
+ {
436
+ "internalType": "string",
437
+ "name": "",
438
+ "type": "string"
439
+ }
440
+ ],
441
+ "stateMutability": "view",
442
+ "type": "function"
443
+ },
444
+ {
445
+ "inputs": [
446
+ {
447
+ "internalType": "address",
448
+ "name": "recipient",
449
+ "type": "address"
450
+ },
451
+ {
452
+ "internalType": "uint256",
453
+ "name": "amount",
454
+ "type": "uint256"
455
+ }
456
+ ],
457
+ "name": "batchMint",
458
+ "outputs": [],
459
+ "stateMutability": "nonpayable",
460
+ "type": "function"
461
+ },
413
462
  {
414
463
  "inputs": [
415
464
  {
@@ -458,6 +507,11 @@
458
507
  "internalType": "string",
459
508
  "name": "symbol",
460
509
  "type": "string"
510
+ },
511
+ {
512
+ "internalType": "string",
513
+ "name": "_baseURI",
514
+ "type": "string"
461
515
  }
462
516
  ],
463
517
  "name": "initialize",
@@ -502,6 +556,19 @@
502
556
  "stateMutability": "view",
503
557
  "type": "function"
504
558
  },
559
+ {
560
+ "inputs": [
561
+ {
562
+ "internalType": "address",
563
+ "name": "recipient",
564
+ "type": "address"
565
+ }
566
+ ],
567
+ "name": "mintTo",
568
+ "outputs": [],
569
+ "stateMutability": "nonpayable",
570
+ "type": "function"
571
+ },
505
572
  {
506
573
  "inputs": [],
507
574
  "name": "name",
@@ -674,6 +741,19 @@
674
741
  "stateMutability": "nonpayable",
675
742
  "type": "function"
676
743
  },
744
+ {
745
+ "inputs": [
746
+ {
747
+ "internalType": "string",
748
+ "name": "_baseURI",
749
+ "type": "string"
750
+ }
751
+ ],
752
+ "name": "setBaseURI",
753
+ "outputs": [],
754
+ "stateMutability": "nonpayable",
755
+ "type": "function"
756
+ },
677
757
  {
678
758
  "inputs": [
679
759
  {
@@ -820,8 +900,8 @@
820
900
  "type": "function"
821
901
  }
822
902
  ],
823
- "bytecode": "0x60808060405234601557611fdc908161001b8239f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a7146116c35750806306fdde0314611614578063081812fc146115c8578063095ea7b3146114e057806323b872dd146114c85780632655e8401461145e5780632e1a7d4d1461140357806342842e0e146113d3578063492cc76914610d195780634a3b68cc14610cd85780636352211e14610ca757806370a0823114610c55578063715018a614610beb57806384d8ad1314610bcd5780638da5cb5b14610b97578063906571471461055657806391b7f5ed1461053457806395d89b411461044b5780639b2c76d414610364578063a035b1fe14610347578063a22cb465146102a8578063b88d4fde14610237578063c15edf5f14610219578063c87b56dd146101bd578063e985e9c51461016e5763f2fde38b1461013f57600080fd5b3461016b57602036600319011261016b5761016861015b611778565b610163611c27565b611b80565b80f35b80fd5b503461016b57604036600319011261016b57610188611778565b610199610193611793565b916118c5565b9060018060a01b0316600052602052602060ff604060002054166040519015158152f35b503461016b57602036600319011261016b576101da600435611bf6565b50806040516101ea6020826117e3565b52506102156040516101fd6020826117e3565b60008152604051918291602083526020830190611753565b0390f35b503461016b578060031936011261016b576020600154604051908152f35b503461016b57608036600319011261016b57610251611778565b610259611793565b906044356064359267ffffffffffffffff84116102a457366023850112156102a457610292610168943690602481600401359101611837565b9261029e838383611938565b33611d69565b8480fd5b503461016b57604036600319011261016b576102c2611778565b60243590811515809203610343576001600160a01b031690811561032f576102e9336118c5565b8284526020526040832060ff1981541660ff83161790556040519081527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a380f35b630b61174360e31b83526004829052602483fd5b8280fd5b503461016b578060031936011261016b5760209054604051908152f35b503461016b57602036600319011261016b576001600160a01b03610386611778565b1681526006602052604081209060405191818154916103a4836118fe565b808652926001811690811561042157506001146103e0575b610215856103cc818703826117e3565b604051918291602083526020830190611753565b815260208120939250905b808210610407575090915081016020016103cc826102156103bc565b9192600181602092548385880101520191019092916103eb565b869550610215969350602092506103cc94915060ff191682840152151560051b82010192936103bc565b503461016b578060031936011261016b576040519080600080516020611f67833981519152549061047b826118fe565b808552916001811690811561050d57506001146104a3575b610215846103cc818603826117e3565b600080516020611f6783398151915281527ff4bad0a69248f59680a4f2b3000328cec71a413447c96781cfe5996daa8c456e939250905b8082106104f3575090915081016020016103cc82610493565b9192600181602092548385880101520191019092916104da565b60ff191660208087019190915292151560051b850190920192506103cc9150839050610493565b503461016b57602036600319011261016b5761054e611c27565b600435815580f35b503461016b57606036600319011261016b57610570611778565b60243567ffffffffffffffff81116103435761059090369060040161186e565b9160443567ffffffffffffffff8111610b93576105b190369060040161186e565b92600080516020611f47833981519152549060ff8260401c16159167ffffffffffffffff811680159081610b8b575b6001149081610b81575b159081610b78575b50610b695767ffffffffffffffff198116600117600080516020611f478339815191525582610b3c575b50610625611eb8565b61062d611eb8565b80519067ffffffffffffffff8211610903578190610659600080516020611ee7833981519152546118fe565b601f8111610aba575b50602090601f8311600114610a2f578592610a24575b50508160011b916000199060031b1c191617600080516020611ee7833981519152555b835167ffffffffffffffff8111610a10576106c4600080516020611f67833981519152546118fe565b601f81116109a0575b50602094601f8211600114610922579483949582939492610917575b50508160011b916000199060031b1c191617600080516020611f67833981519152555b610714611eb8565b61071c611eb8565b61072583611b80565b61072d611c27565b61073683611b80565b66038d7ea4c680008255601460015560048055610751611c84565b9260405160208186516107678183858b01611730565b60059082019081520301902080546001600160a01b0319166001600160a01b039290921691821790558252600660205260408220835167ffffffffffffffff8111610903576107b682546118fe565b601f81116108be575b50602094601f821160011461085c579484958293949592610851575b50508160011b916000199060031b1c19161790555b6107f75780f35b68ff000000000000000019600080516020611f478339815191525416600080516020611f47833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b0151905038806107db565b601f1982169583865280862091865b8881106108a65750836001959697981061088d575b505050811b0190556107f0565b015160001960f88460031b161c19169055388080610880565b9192602060018192868501518155019401920161086b565b82855260208520601f830160051c810191602084106108f9575b601f0160051c01905b8181106108ee57506107bf565b8581556001016108e1565b90915081906108d8565b634e487b7160e01b84526041600452602484fd5b0151905038806106e9565b601f19821695600080516020611f67833981519152855280852091855b8881106109885750836001959697981061096f575b505050811b01600080516020611f678339815191525561070c565b015160001960f88460031b161c19169055388080610954565b9192602060018192868501518155019401920161093f565b600080516020611f6783398151915284527ff4bad0a69248f59680a4f2b3000328cec71a413447c96781cfe5996daa8c456e601f830160051c81019160208410610a06575b601f0160051c01905b8181106109fb57506106cd565b8481556001016109ee565b90915081906109e5565b634e487b7160e01b83526041600452602483fd5b015190503880610678565b600080516020611ee78339815191528652600080516020611f878339815191529250601f198416865b818110610aa25750908460019594939210610a89575b505050811b01600080516020611ee78339815191525561069b565b015160001960f88460031b161c19169055388080610a6e565b92936020600181928786015181550195019301610a58565b909150600080516020611ee78339815191528552601f830160051c600080516020611f87833981519152019060208410610b26575b90601f8493920160051c600080516020611f8783398151915201905b818110610b185750610662565b868155849350600101610b0b565b600080516020611f878339815191529150610aef565b68ffffffffffffffffff19166801000000000000000117600080516020611f47833981519152553861061c565b63f92ee8a960e01b8452600484fd5b905015386105f2565b303b1591506105ea565b8491506105e0565b5080fd5b503461016b578060031936011261016b57600080516020611f07833981519152546040516001600160a01b039091168152602090f35b503461016b578060031936011261016b576020600454604051908152f35b503461016b578060031936011261016b57610c04611c27565b600080516020611f0783398151915280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b503461016b57602036600319011261016b57610c6f611778565b906001600160a01b03821615610c93576020610c8a8361188c565b54604051908152f35b6322718ad960e21b81526004819052602490fd5b503461016b57602036600319011261016b576020610cc6600435611bf6565b6040516001600160a01b039091168152f35b503461016b57602036600319011261016b576020906001600160a01b03610cfd611778565b16815260038252604060018060a01b0391205416604051908152f35b50602036600319011261016b5760043567ffffffffffffffff8111610b9357610d4690369060040161186e565b81548034036113bd575060025490602091604051610d6484826117e3565b84815233156113a957610d7682611e7e565b6001600160a01b038116801515919084908361136a575b610d963361188c565b805460010190558189527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930288526040892080546001600160a01b03191633908117909155907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8a80a450611356578390333b61126f575b505050610e466002546040518181527f4cc0a9c4a99ddc700de1af2c9f916a7cbfdb71f14801ccff94061ad1ef8a8040853392a2611b48565b60025533835260068252610e5d60408420546118fe565b15611104575b81610e776040519283815193849201611730565b600590820190815281900382019020546001600160a01b0316801580156110fb575b6110e9573383526003825260408320546001600160a01b031615611099575b506064610ec760015434611b6d565b043383526003825260018060a01b0360408420541683925b6001600160a01b0382168015158061108e575b15611086578086526003825260408620546001600160a01b0316908115801561105b575b15610fa2575050506001600160a01b0316908380808084865af1610f38611b18565b5015610f8a57610f847f02ed85443f0661a84c4e0306728875b8e1dab887acb3f834fc8d74fa8cea63859160405191829133963491846040919493926060820195825260208201520152565b0390a380f35b633da906b960e01b8452600491909152602452604482fd5b9091949392506001546064036064811161104757610fc260649185611b6d565b0490818403938411611047578680808085855af1610fde611b18565b5015611032576040805192835260208301869052349083015261102c92913391907f02ed85443f0661a84c4e0306728875b8e1dab887acb3f834fc8d74fa8cea638590606090a39192611b48565b92610edf565b633da906b960e01b8752600452602452604485fd5b634e487b7160e01b87526011600452602487fd5b506004546000198101908111611072578614610f16565b634e487b7160e01b88526011600452602488fd5b505050505080f35b506004548510610ef2565b33808452600383526040842080546001600160a01b0319166001600160a01b038416179055907f5f7165288eef601591cf549e15ff19ef9060b7f71b9c115be946fa1fe7ebf68a8480a338610eb8565b6316fb166f60e01b8352600452602482fd5b50338114610e99565b61110c611c84565b604051838183516111208183858801611730565b60059082019081520301902080546001600160a01b03191633908117909155845260068352604084208151909167ffffffffffffffff821161125b57819061116884546118fe565b601f811161120d575b508590601f83116001146111aa57879261119f575b50508160011b916000199060031b1c1916179055610e63565b015190503880611186565b8488528688209250601f198416885b888282106111f75750509084600195949392106111de575b505050811b019055610e63565b015160001960f88460031b161c191690553880806111d1565b60018596829396860151815501950193016111b9565b909150838752858720601f840160051c810191878510611251575b90601f859493920160051c01905b8181106112435750611171565b888155849350600101611236565b9091508190611228565b634e487b7160e01b86526041600452602486fd5b6112a7926040519384928392630a85bd0160e11b84523360048501528960248501526044840152608060648401526084830190611753565b038187335af1849181611316575b506112e45782846112c4611b18565b805192836112df57633250574960e11b835233600452602483fd5b019050fd5b6001600160e01b03191663757a42ff60e11b0161130357388281610e0d565b633250574960e11b835233600452602483fd5b9091508381813d831161134f575b61132e81836117e3565b810103126102a457516001600160e01b0319811681036102a45790386112b5565b503d611324565b6339e3563760e11b85526004859052602485fd5b6000828152600080516020611f278339815191526020526040902080546001600160a01b031916905561139c8361188c565b8054600019019055610d8d565b633250574960e11b85526004859052602485fd5b63ebbfb3bb60e01b835234600452602452604482fd5b503461016b576101686113e5366117a9565b90604051926113f56020856117e3565b85845261029e838383611938565b503461016b57602036600319011261016b57600435611420611c27565b47811161144f578180808093335af1611437611b18565b50156114405780f35b63351dc55d60e21b8152600490fd5b631e9acf1760e31b8252600482fd5b503461016b57602036600319011261016b576004359067ffffffffffffffff821161016b576020611492366004850161186e565b816114a66040519283815193849201611730565b600590820190815281900382019020546040516001600160a01b039091168152f35b503461016b576101686114da366117a9565b91611938565b503461016b57604036600319011261016b576114fa611778565b60243561150681611bf6565b331515806115b5575b80611597575b6115845781906001600160a01b0384811691167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258680a48252600080516020611f278339815191526020526040822080546001600160a01b0319166001600160a01b0390921691909117905580f35b63a9fbf51f60e01b845233600452602484fd5b506115a1816118c5565b338552602052604084205460ff1615611515565b506001600160a01b03811633141561150f565b503461016b57602036600319011261016b576020610cc66004356115eb81611bf6565b506000908152600080516020611f2783398151915260205260409020546001600160a01b031690565b503461016b578060031936011261016b576040519080600080516020611ee78339815191525490611644826118fe565b808552916001811690811561050d575060011461166b57610215846103cc818603826117e3565b600080516020611ee78339815191528152600080516020611f87833981519152939250905b8082106116a9575090915081016020016103cc82610493565b919260018160209254838588010152019101909291611690565b905034610b93576020366003190112610b935760043563ffffffff60e01b811680910361034357602092506380ac58cd60e01b811490811561171f575b811561170e575b5015158152f35b6301ffc9a760e01b14905038611707565b635b5e139f60e01b81149150611700565b60005b8381106117435750506000910152565b8181015183820152602001611733565b9060209161176c81518092818552858086019101611730565b601f01601f1916010190565b600435906001600160a01b038216820361178e57565b600080fd5b602435906001600160a01b038216820361178e57565b606090600319011261178e576004356001600160a01b038116810361178e57906024356001600160a01b038116810361178e579060443590565b90601f8019910116810190811067ffffffffffffffff82111761180557604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff811161180557601f01601f191660200190565b9291926118438261181b565b9161185160405193846117e3565b82948184528183011161178e578281602093846000960137010152565b9080601f8301121561178e5781602061188993359101611837565b90565b6001600160a01b031660009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793036020526040902090565b6001600160a01b031660009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793056020526040902090565b90600182811c9216801561192e575b602083101461191857565b634e487b7160e01b600052602260045260246000fd5b91607f169161190d565b909291906001600160a01b0384168015611b025760009461195884611e7e565b9533151580611a56575b509184917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6119a397989460018060a01b03861698899384611a175761188c565b805460010190558481527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793026020526040812080546001600160a01b0319168517905580a4506001600160a01b03168083036119fd57505050565b6364283d7b60e01b60005260045260245260445260646000fd5b6000878152600080516020611f278339815191526020526040902080546001600160a01b0319169055611a498861188c565b805460001901905561188c565b80611a9f575b15611a675738611962565b84906001600160a01b038816611a8957602491637e27328960e01b8252600452fd5b60449163177e802f60e01b825233600452602452fd5b506001600160a01b03871633148015611ae5575b80611a5c57506000858152600080516020611f2783398151915260205260409020546001600160a01b03163314611a5c565b50611aef876118c5565b338252602052604081205460ff16611ab3565b633250574960e11b600052600060045260246000fd5b3d15611b43573d90611b298261181b565b91611b3760405193846117e3565b82523d6000602084013e565b606090565b6000198114611b575760010190565b634e487b7160e01b600052601160045260246000fd5b81810292918115918404141715611b5757565b6001600160a01b03168015611be057600080516020611f0783398151915280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b631e4fbdf760e01b600052600060045260246000fd5b611bff81611e7e565b906001600160a01b03821615611c13575090565b637e27328960e01b60005260045260246000fd5b600080516020611f07833981519152546001600160a01b03163303611c4857565b63118cdaa760e01b6000523360045260246000fd5b908151811015611c6e570160200190565b634e487b7160e01b600052603260045260246000fd5b6060604051611c9382826117e3565b602481527f6162636465666768696a6b6c6d6e6f707172737475767778797a3031323334356020820152633637383960e01b6040820152604091825192611cda81856117e3565b60068452601f19810136602086013760005b60068110611cfb575050505090565b8151602081019042825244848201528285820152848152611d1d6080826117e3565b519020908451918215611d5357611d3d60019360ff60f81b920687611c5d565b511660001a611d4c8288611c5d565b5301611cec565b634e487b7160e01b600052601260045260246000fd5b823b611d77575b5050505050565b604051630a85bd0160e11b81526001600160a01b039182166004820152918116602483015260448201939093526080606482015291169160209082908190611dc3906084830190611753565b03816000865af18091600091611e3b575b5090611e055750611de3611b18565b80519081611e005782633250574960e11b60005260045260246000fd5b602001fd5b6001600160e01b03191663757a42ff60e11b01611e2757503880808080611d70565b633250574960e11b60005260045260246000fd5b6020813d602011611e76575b81611e54602093836117e3565b81010312610b935751906001600160e01b03198216820361016b575038611dd4565b3d9150611e47565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930260205260409020546001600160a01b031690565b60ff600080516020611f478339815191525460401c1615611ed557565b631afcd79f60e31b60005260046000fdfe80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793009016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab0079304f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0080bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930137c58c799b6609234b945e882912ee9ad34948a1dfaa20a97485e1a7752bbf81a2646970667358221220129b5c16100bb5bba6f28b40893280af568cd4fb18392ad9164dfb144ed7741864736f6c634300081c0033",
824
- "deployedBytecode": "0x608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a7146116c35750806306fdde0314611614578063081812fc146115c8578063095ea7b3146114e057806323b872dd146114c85780632655e8401461145e5780632e1a7d4d1461140357806342842e0e146113d3578063492cc76914610d195780634a3b68cc14610cd85780636352211e14610ca757806370a0823114610c55578063715018a614610beb57806384d8ad1314610bcd5780638da5cb5b14610b97578063906571471461055657806391b7f5ed1461053457806395d89b411461044b5780639b2c76d414610364578063a035b1fe14610347578063a22cb465146102a8578063b88d4fde14610237578063c15edf5f14610219578063c87b56dd146101bd578063e985e9c51461016e5763f2fde38b1461013f57600080fd5b3461016b57602036600319011261016b5761016861015b611778565b610163611c27565b611b80565b80f35b80fd5b503461016b57604036600319011261016b57610188611778565b610199610193611793565b916118c5565b9060018060a01b0316600052602052602060ff604060002054166040519015158152f35b503461016b57602036600319011261016b576101da600435611bf6565b50806040516101ea6020826117e3565b52506102156040516101fd6020826117e3565b60008152604051918291602083526020830190611753565b0390f35b503461016b578060031936011261016b576020600154604051908152f35b503461016b57608036600319011261016b57610251611778565b610259611793565b906044356064359267ffffffffffffffff84116102a457366023850112156102a457610292610168943690602481600401359101611837565b9261029e838383611938565b33611d69565b8480fd5b503461016b57604036600319011261016b576102c2611778565b60243590811515809203610343576001600160a01b031690811561032f576102e9336118c5565b8284526020526040832060ff1981541660ff83161790556040519081527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a380f35b630b61174360e31b83526004829052602483fd5b8280fd5b503461016b578060031936011261016b5760209054604051908152f35b503461016b57602036600319011261016b576001600160a01b03610386611778565b1681526006602052604081209060405191818154916103a4836118fe565b808652926001811690811561042157506001146103e0575b610215856103cc818703826117e3565b604051918291602083526020830190611753565b815260208120939250905b808210610407575090915081016020016103cc826102156103bc565b9192600181602092548385880101520191019092916103eb565b869550610215969350602092506103cc94915060ff191682840152151560051b82010192936103bc565b503461016b578060031936011261016b576040519080600080516020611f67833981519152549061047b826118fe565b808552916001811690811561050d57506001146104a3575b610215846103cc818603826117e3565b600080516020611f6783398151915281527ff4bad0a69248f59680a4f2b3000328cec71a413447c96781cfe5996daa8c456e939250905b8082106104f3575090915081016020016103cc82610493565b9192600181602092548385880101520191019092916104da565b60ff191660208087019190915292151560051b850190920192506103cc9150839050610493565b503461016b57602036600319011261016b5761054e611c27565b600435815580f35b503461016b57606036600319011261016b57610570611778565b60243567ffffffffffffffff81116103435761059090369060040161186e565b9160443567ffffffffffffffff8111610b93576105b190369060040161186e565b92600080516020611f47833981519152549060ff8260401c16159167ffffffffffffffff811680159081610b8b575b6001149081610b81575b159081610b78575b50610b695767ffffffffffffffff198116600117600080516020611f478339815191525582610b3c575b50610625611eb8565b61062d611eb8565b80519067ffffffffffffffff8211610903578190610659600080516020611ee7833981519152546118fe565b601f8111610aba575b50602090601f8311600114610a2f578592610a24575b50508160011b916000199060031b1c191617600080516020611ee7833981519152555b835167ffffffffffffffff8111610a10576106c4600080516020611f67833981519152546118fe565b601f81116109a0575b50602094601f8211600114610922579483949582939492610917575b50508160011b916000199060031b1c191617600080516020611f67833981519152555b610714611eb8565b61071c611eb8565b61072583611b80565b61072d611c27565b61073683611b80565b66038d7ea4c680008255601460015560048055610751611c84565b9260405160208186516107678183858b01611730565b60059082019081520301902080546001600160a01b0319166001600160a01b039290921691821790558252600660205260408220835167ffffffffffffffff8111610903576107b682546118fe565b601f81116108be575b50602094601f821160011461085c579484958293949592610851575b50508160011b916000199060031b1c19161790555b6107f75780f35b68ff000000000000000019600080516020611f478339815191525416600080516020611f47833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b0151905038806107db565b601f1982169583865280862091865b8881106108a65750836001959697981061088d575b505050811b0190556107f0565b015160001960f88460031b161c19169055388080610880565b9192602060018192868501518155019401920161086b565b82855260208520601f830160051c810191602084106108f9575b601f0160051c01905b8181106108ee57506107bf565b8581556001016108e1565b90915081906108d8565b634e487b7160e01b84526041600452602484fd5b0151905038806106e9565b601f19821695600080516020611f67833981519152855280852091855b8881106109885750836001959697981061096f575b505050811b01600080516020611f678339815191525561070c565b015160001960f88460031b161c19169055388080610954565b9192602060018192868501518155019401920161093f565b600080516020611f6783398151915284527ff4bad0a69248f59680a4f2b3000328cec71a413447c96781cfe5996daa8c456e601f830160051c81019160208410610a06575b601f0160051c01905b8181106109fb57506106cd565b8481556001016109ee565b90915081906109e5565b634e487b7160e01b83526041600452602483fd5b015190503880610678565b600080516020611ee78339815191528652600080516020611f878339815191529250601f198416865b818110610aa25750908460019594939210610a89575b505050811b01600080516020611ee78339815191525561069b565b015160001960f88460031b161c19169055388080610a6e565b92936020600181928786015181550195019301610a58565b909150600080516020611ee78339815191528552601f830160051c600080516020611f87833981519152019060208410610b26575b90601f8493920160051c600080516020611f8783398151915201905b818110610b185750610662565b868155849350600101610b0b565b600080516020611f878339815191529150610aef565b68ffffffffffffffffff19166801000000000000000117600080516020611f47833981519152553861061c565b63f92ee8a960e01b8452600484fd5b905015386105f2565b303b1591506105ea565b8491506105e0565b5080fd5b503461016b578060031936011261016b57600080516020611f07833981519152546040516001600160a01b039091168152602090f35b503461016b578060031936011261016b576020600454604051908152f35b503461016b578060031936011261016b57610c04611c27565b600080516020611f0783398151915280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b503461016b57602036600319011261016b57610c6f611778565b906001600160a01b03821615610c93576020610c8a8361188c565b54604051908152f35b6322718ad960e21b81526004819052602490fd5b503461016b57602036600319011261016b576020610cc6600435611bf6565b6040516001600160a01b039091168152f35b503461016b57602036600319011261016b576020906001600160a01b03610cfd611778565b16815260038252604060018060a01b0391205416604051908152f35b50602036600319011261016b5760043567ffffffffffffffff8111610b9357610d4690369060040161186e565b81548034036113bd575060025490602091604051610d6484826117e3565b84815233156113a957610d7682611e7e565b6001600160a01b038116801515919084908361136a575b610d963361188c565b805460010190558189527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930288526040892080546001600160a01b03191633908117909155907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8a80a450611356578390333b61126f575b505050610e466002546040518181527f4cc0a9c4a99ddc700de1af2c9f916a7cbfdb71f14801ccff94061ad1ef8a8040853392a2611b48565b60025533835260068252610e5d60408420546118fe565b15611104575b81610e776040519283815193849201611730565b600590820190815281900382019020546001600160a01b0316801580156110fb575b6110e9573383526003825260408320546001600160a01b031615611099575b506064610ec760015434611b6d565b043383526003825260018060a01b0360408420541683925b6001600160a01b0382168015158061108e575b15611086578086526003825260408620546001600160a01b0316908115801561105b575b15610fa2575050506001600160a01b0316908380808084865af1610f38611b18565b5015610f8a57610f847f02ed85443f0661a84c4e0306728875b8e1dab887acb3f834fc8d74fa8cea63859160405191829133963491846040919493926060820195825260208201520152565b0390a380f35b633da906b960e01b8452600491909152602452604482fd5b9091949392506001546064036064811161104757610fc260649185611b6d565b0490818403938411611047578680808085855af1610fde611b18565b5015611032576040805192835260208301869052349083015261102c92913391907f02ed85443f0661a84c4e0306728875b8e1dab887acb3f834fc8d74fa8cea638590606090a39192611b48565b92610edf565b633da906b960e01b8752600452602452604485fd5b634e487b7160e01b87526011600452602487fd5b506004546000198101908111611072578614610f16565b634e487b7160e01b88526011600452602488fd5b505050505080f35b506004548510610ef2565b33808452600383526040842080546001600160a01b0319166001600160a01b038416179055907f5f7165288eef601591cf549e15ff19ef9060b7f71b9c115be946fa1fe7ebf68a8480a338610eb8565b6316fb166f60e01b8352600452602482fd5b50338114610e99565b61110c611c84565b604051838183516111208183858801611730565b60059082019081520301902080546001600160a01b03191633908117909155845260068352604084208151909167ffffffffffffffff821161125b57819061116884546118fe565b601f811161120d575b508590601f83116001146111aa57879261119f575b50508160011b916000199060031b1c1916179055610e63565b015190503880611186565b8488528688209250601f198416885b888282106111f75750509084600195949392106111de575b505050811b019055610e63565b015160001960f88460031b161c191690553880806111d1565b60018596829396860151815501950193016111b9565b909150838752858720601f840160051c810191878510611251575b90601f859493920160051c01905b8181106112435750611171565b888155849350600101611236565b9091508190611228565b634e487b7160e01b86526041600452602486fd5b6112a7926040519384928392630a85bd0160e11b84523360048501528960248501526044840152608060648401526084830190611753565b038187335af1849181611316575b506112e45782846112c4611b18565b805192836112df57633250574960e11b835233600452602483fd5b019050fd5b6001600160e01b03191663757a42ff60e11b0161130357388281610e0d565b633250574960e11b835233600452602483fd5b9091508381813d831161134f575b61132e81836117e3565b810103126102a457516001600160e01b0319811681036102a45790386112b5565b503d611324565b6339e3563760e11b85526004859052602485fd5b6000828152600080516020611f278339815191526020526040902080546001600160a01b031916905561139c8361188c565b8054600019019055610d8d565b633250574960e11b85526004859052602485fd5b63ebbfb3bb60e01b835234600452602452604482fd5b503461016b576101686113e5366117a9565b90604051926113f56020856117e3565b85845261029e838383611938565b503461016b57602036600319011261016b57600435611420611c27565b47811161144f578180808093335af1611437611b18565b50156114405780f35b63351dc55d60e21b8152600490fd5b631e9acf1760e31b8252600482fd5b503461016b57602036600319011261016b576004359067ffffffffffffffff821161016b576020611492366004850161186e565b816114a66040519283815193849201611730565b600590820190815281900382019020546040516001600160a01b039091168152f35b503461016b576101686114da366117a9565b91611938565b503461016b57604036600319011261016b576114fa611778565b60243561150681611bf6565b331515806115b5575b80611597575b6115845781906001600160a01b0384811691167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258680a48252600080516020611f278339815191526020526040822080546001600160a01b0319166001600160a01b0390921691909117905580f35b63a9fbf51f60e01b845233600452602484fd5b506115a1816118c5565b338552602052604084205460ff1615611515565b506001600160a01b03811633141561150f565b503461016b57602036600319011261016b576020610cc66004356115eb81611bf6565b506000908152600080516020611f2783398151915260205260409020546001600160a01b031690565b503461016b578060031936011261016b576040519080600080516020611ee78339815191525490611644826118fe565b808552916001811690811561050d575060011461166b57610215846103cc818603826117e3565b600080516020611ee78339815191528152600080516020611f87833981519152939250905b8082106116a9575090915081016020016103cc82610493565b919260018160209254838588010152019101909291611690565b905034610b93576020366003190112610b935760043563ffffffff60e01b811680910361034357602092506380ac58cd60e01b811490811561171f575b811561170e575b5015158152f35b6301ffc9a760e01b14905038611707565b635b5e139f60e01b81149150611700565b60005b8381106117435750506000910152565b8181015183820152602001611733565b9060209161176c81518092818552858086019101611730565b601f01601f1916010190565b600435906001600160a01b038216820361178e57565b600080fd5b602435906001600160a01b038216820361178e57565b606090600319011261178e576004356001600160a01b038116810361178e57906024356001600160a01b038116810361178e579060443590565b90601f8019910116810190811067ffffffffffffffff82111761180557604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff811161180557601f01601f191660200190565b9291926118438261181b565b9161185160405193846117e3565b82948184528183011161178e578281602093846000960137010152565b9080601f8301121561178e5781602061188993359101611837565b90565b6001600160a01b031660009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793036020526040902090565b6001600160a01b031660009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793056020526040902090565b90600182811c9216801561192e575b602083101461191857565b634e487b7160e01b600052602260045260246000fd5b91607f169161190d565b909291906001600160a01b0384168015611b025760009461195884611e7e565b9533151580611a56575b509184917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6119a397989460018060a01b03861698899384611a175761188c565b805460010190558481527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793026020526040812080546001600160a01b0319168517905580a4506001600160a01b03168083036119fd57505050565b6364283d7b60e01b60005260045260245260445260646000fd5b6000878152600080516020611f278339815191526020526040902080546001600160a01b0319169055611a498861188c565b805460001901905561188c565b80611a9f575b15611a675738611962565b84906001600160a01b038816611a8957602491637e27328960e01b8252600452fd5b60449163177e802f60e01b825233600452602452fd5b506001600160a01b03871633148015611ae5575b80611a5c57506000858152600080516020611f2783398151915260205260409020546001600160a01b03163314611a5c565b50611aef876118c5565b338252602052604081205460ff16611ab3565b633250574960e11b600052600060045260246000fd5b3d15611b43573d90611b298261181b565b91611b3760405193846117e3565b82523d6000602084013e565b606090565b6000198114611b575760010190565b634e487b7160e01b600052601160045260246000fd5b81810292918115918404141715611b5757565b6001600160a01b03168015611be057600080516020611f0783398151915280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b631e4fbdf760e01b600052600060045260246000fd5b611bff81611e7e565b906001600160a01b03821615611c13575090565b637e27328960e01b60005260045260246000fd5b600080516020611f07833981519152546001600160a01b03163303611c4857565b63118cdaa760e01b6000523360045260246000fd5b908151811015611c6e570160200190565b634e487b7160e01b600052603260045260246000fd5b6060604051611c9382826117e3565b602481527f6162636465666768696a6b6c6d6e6f707172737475767778797a3031323334356020820152633637383960e01b6040820152604091825192611cda81856117e3565b60068452601f19810136602086013760005b60068110611cfb575050505090565b8151602081019042825244848201528285820152848152611d1d6080826117e3565b519020908451918215611d5357611d3d60019360ff60f81b920687611c5d565b511660001a611d4c8288611c5d565b5301611cec565b634e487b7160e01b600052601260045260246000fd5b823b611d77575b5050505050565b604051630a85bd0160e11b81526001600160a01b039182166004820152918116602483015260448201939093526080606482015291169160209082908190611dc3906084830190611753565b03816000865af18091600091611e3b575b5090611e055750611de3611b18565b80519081611e005782633250574960e11b60005260045260246000fd5b602001fd5b6001600160e01b03191663757a42ff60e11b01611e2757503880808080611d70565b633250574960e11b60005260045260246000fd5b6020813d602011611e76575b81611e54602093836117e3565b81010312610b935751906001600160e01b03198216820361016b575038611dd4565b3d9150611e47565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930260205260409020546001600160a01b031690565b60ff600080516020611f478339815191525460401c1615611ed557565b631afcd79f60e31b60005260046000fdfe80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793009016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab0079304f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0080bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930137c58c799b6609234b945e882912ee9ad34948a1dfaa20a97485e1a7752bbf81a2646970667358221220129b5c16100bb5bba6f28b40893280af568cd4fb18392ad9164dfb144ed7741864736f6c634300081c0033",
903
+ "bytecode": "0x608080604052346015576127dd908161001b8239f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c90816301ffc9a714611c2a5750806306fdde0314611b7a578063081812fc14611b2f578063095ea7b314611a3d57806323b872dd14611a265780632655e840146119be5780632e1a7d4d1461196057806342842e0e1461193057806343508b0514611757578063492cc769146112af5780634a3b68cc1461126d57806355f804b3146110985780635f1e6f6d146109195780636352211e146108e95780636c0360eb146108cd57806370a082311461087b578063715018a614610811578063755edd171461060257806384d8ad13146105e45780638da5cb5b146105ae57806391b7f5ed1461058d57806395d89b41146104a65780639b2c76d4146103d4578063a035b1fe146103b6578063a22cb4651461031a578063b88d4fde146102af578063c15edf5f14610291578063c87b56dd146101e7578063e985e9c5146101995763f2fde38b1461016957600080fd5b3461019457602036600319011261019457610192610185611cdd565b61018d612200565b612159565b005b600080fd5b34610194576040366003190112610194576101b2611cdd565b6101c36101bd611cf3565b91611e0d565b9060018060a01b0316600052602052602060ff604060002054166040519015158152f35b34610194576020366003190112610194576001600160a01b0361020b6004356121cf565b16156102345761023061021c611e80565b604051918291602083526020830190611cb8565b0390f35b60405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608490fd5b34610194576000366003190112610194576020600154604051908152f35b34610194576080366003190112610194576102c8611cdd565b6102d0611cf3565b90604435606435926001600160401b038411610194573660238501121561019457610308610192943690602481600401359101611d7f565b92610314838383611f27565b3361255e565b3461019457604036600319011261019457610333611cdd565b60243590811515809203610194576001600160a01b03169081156103a15761035a33611e0d565b82600052602052604060002060ff1981541660ff83161790556040519081527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a3005b50630b61174360e31b60005260045260246000fd5b34610194576000366003190112610194576020600054604051908152f35b34610194576020366003190112610194576001600160a01b036103f5611cdd565b16600052600660205260406000206040519060009080549061041682611e46565b808552916001811690811561047f575060011461043e575b6102308461021c81860382611d43565b600090815260208120939250905b8082106104655750909150810160200161021c8261042e565b91926001816020925483858801015201910190929161044c565b60ff191660208087019190915292151560051b8501909201925061021c915083905061042e565b34610194576000366003190112610194576040516000600080516020612768833981519152546104d581611e46565b808452906001811690811561056957506001146104fd575b6102308361021c81850382611d43565b60008051602061276883398151915260009081527ff4bad0a69248f59680a4f2b3000328cec71a413447c96781cfe5996daa8c456e939250905b80821061054f5750909150810160200161021c6104ed565b919260018160209254838588010152019101909291610537565b60ff191660208086019190915291151560051b8401909101915061021c90506104ed565b34610194576020366003190112610194576105a6612200565b600435600055005b34610194576000366003190112610194576000805160206126e8833981519152546040516001600160a01b039091168152602090f35b34610194576000366003190112610194576020600454604051908152f35b346101945760203660031901126101945761061b611cdd565b610623612200565b6001600160a01b0381169081156108005760025461064091612236565b610676600254827f4cc0a9c4a99ddc700de1af2c9f916a7cbfdb71f14801ccff94061ad1ef8a80406020604051848152a2612137565b600255806000526006602052610690604060002054611e46565b1561069757005b61069f612479565b9060405160208184516106b58183858901611c95565b81016005815203019020816bffffffffffffffffffffffff60a01b8254161790556000526006602052604060002081516001600160401b0381116107ea576106fd8254611e46565b601f81116107a2575b50602092601f82116001146107425792819293600092610737575b50508160011b916000199060031b1c1916179055005b015190508380610721565b601f1982169383600052806000209160005b86811061078a5750836001959610610771575b505050811b019055005b015160001960f88460031b161c19169055838080610767565b91926020600181928685015181550194019201610754565b826000526020600020601f830160051c810191602084106107e0575b601f0160051c01905b8181106107d45750610706565b600081556001016107c7565b90915081906107be565b634e487b7160e01b600052604160045260246000fd5b634e46966960e11b60005260046000fd5b346101945760003660031901126101945761082a612200565b6000805160206126e883398151915280546001600160a01b031981169091556000906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461019457602036600319011261019457610894611cdd565b6001600160a01b038116156108b7576108ae602091611dd4565b54604051908152f35b6322718ad960e21b600052600060045260246000fd5b346101945760003660031901126101945761023061021c611e80565b346101945760203660031901126101945760206109076004356121cf565b6040516001600160a01b039091168152f35b3461019457608036600319011261019457610932611cdd565b6024356001600160401b03811161019457610951903690600401611db6565b6044356001600160401b03811161019457610970903690600401611db6565b916064356001600160401b03811161019457610990903690600401611db6565b91600080516020612748833981519152549060ff8260401c1615916001600160401b03811680159081611090575b6001149081611086575b15908161107d575b5061106c5767ffffffffffffffff198116600117600080516020612748833981519152558261103f575b50610a03612699565b610a0b612699565b8051906001600160401b0382116107ea578190610a366000805160206126c883398151915254611e46565b601f8111610fbb575b50602090601f8311600114610f2d57600092610f22575b50508160011b916000199060031b1c1916176000805160206126c8833981519152555b83516001600160401b0381116107ea57610aa160008051602061276883398151915254611e46565b601f8111610eb0575b50602094601f8211600114610e2f57948192939495600092610e24575b50508160011b916000199060031b1c191617600080516020612768833981519152555b610af2612699565b610afa612699565b610b0382612159565b610b0b612200565b610b1482612159565b66038d7ea4c6800060005560146001556004805582516001600160401b0381116107ea57610b43600754611e46565b601f8111610db7575b506020601f8211600114610d455781929394600092610d3a575b50508160011b916000199060031b1c1916176007555b610b84612479565b916040516020818551610b9a8183858a01611c95565b60059082019081520301902080546001600160a01b0319166001600160a01b03929092169182179055600090815260066020526040902082516001600160401b0381116107ea57610beb8254611e46565b601f8111610cf2575b506020601f8211600114610c8d5781929394600092610c82575b50508160011b916000199060031b1c19161790555b610c2957005b68ff0000000000000000196000805160206127488339815191525416600080516020612748833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b015190508480610c0e565b601f1982169083600052806000209160005b818110610cda57509583600195969710610cc1575b505050811b019055610c23565b015160001960f88460031b161c19169055848080610cb4565b9192602060018192868b015181550194019201610c9f565b826000526020600020601f830160051c81019160208410610d30575b601f0160051c01905b818110610d245750610bf4565b60008155600101610d17565b9091508190610d0e565b015190508480610b66565b601f1982169060076000526000805160206127088339815191529160005b818110610d9f57509583600195969710610d86575b505050811b01600755610b7c565b015160001960f88460031b161c19169055848080610d78565b9192602060018192868b015181550194019201610d63565b6007600052601f820160051c600080516020612708833981519152019060208310610e0e575b601f0160051c60008051602061270883398151915201905b818110610e025750610b4c565b60008155600101610df5565b6000805160206127088339815191529150610ddd565b015190508580610ac7565b601f19821695600080516020612768833981519152600052806000209160005b888110610e9857508360019596979810610e7f575b505050811b0160008051602061276883398151915255610aea565b015160001960f88460031b161c19169055858080610e64565b91926020600181928685015181550194019201610e4f565b6000805160206127688339815191526000527ff4bad0a69248f59680a4f2b3000328cec71a413447c96781cfe5996daa8c456e601f830160051c81019160208410610f18575b601f0160051c01905b818110610f0c5750610aaa565b60008155600101610eff565b9091508190610ef6565b015190508680610a56565b6000805160206126c883398151915260009081526000805160206127888339815191529350601f198516905b818110610fa35750908460019594939210610f8a575b505050811b016000805160206126c883398151915255610a79565b015160001960f88460031b161c19169055868080610f6f565b92936020600181928786015181550195019301610f59565b9091506000805160206126c8833981519152600052601f830160051c600080516020612788833981519152019060208410611029575b90601f8493920160051c60008051602061278883398151915201905b81811061101a5750610a3f565b6000815584935060010161100d565b6000805160206127888339815191529150610ff1565b68ffffffffffffffffff1916680100000000000000011760008051602061274883398151915255856109fa565b63f92ee8a960e01b60005260046000fd5b905015876109d0565b303b1591506109c8565b8491506109be565b34610194576020366003190112610194576004356001600160401b038111610194576110c8903690600401611db6565b6110d0612200565b80516001600160401b0381116107ea576110eb600754611e46565b601f8111611200575b506020601f821160011461116a57918161115a927f5411e8ebf1636d9e83d5fc4900bf80cbac82e8790da2a4c94db4895e889eedf69460009161115f575b508160011b916000199060031b1c191617600755604051918291602083526020830190611cb8565b0390a1005b905082015185611132565b601f1982169060076000526000805160206127088339815191529160005b8181106111e85750927f5411e8ebf1636d9e83d5fc4900bf80cbac82e8790da2a4c94db4895e889eedf694926001928261115a96106111cf575b5050811b0160075561021c565b84015160001960f88460031b161c1916905585806111c2565b91926020600181928689015181550194019201611188565b6007600052601f820160051c600080516020612708833981519152019060208310611257575b601f0160051c60008051602061270883398151915201905b81811061124b57506110f4565b6000815560010161123e565b6000805160206127088339815191529150611226565b34610194576020366003190112610194576001600160a01b0361128e611cdd565b166000526003602052602060018060a01b0360406000205416604051908152f35b6020366003190112610194576004356001600160401b038111610194576112da903690600401611db6565b60005480340361173f57506112f160025433612236565b6113286002546040518181527f4cc0a9c4a99ddc700de1af2c9f916a7cbfdb71f14801ccff94061ad1ef8a804060203392a2612137565b600255336000526006602052611342604060002054611e46565b156115e6575b602061135d6040519283815193849201611c95565b60059082019081528190036020019020546001600160a01b0316801580156115dd575b6115c957336000908152600360205260409020546001600160a01b031615611574575b5060646113b260015434612146565b0433600052600360205260018060a01b0360406000205416906000915b6001600160a01b03811680151580611569575b15610192576000818152600360205260409020546001600160a01b03169081158015611552575b156114945750506001600160a01b031690600080808084865af161142b612107565b501561147c576114777f02ed85443f0661a84c4e0306728875b8e1dab887acb3f834fc8d74fa8cea63859160405191829133963491846040919493926060820195825260208201520152565b0390a3005b90633da906b960e01b60005260045260245260446000fd5b9091506001939293546064036064811161153c576114b460649186612146565b049081850394851161153c57600080808085855af16114d1612107565b5015611525576040805192835260208301859052349083015261151f92913391907f02ed85443f0661a84c4e0306728875b8e1dab887acb3f834fc8d74fa8cea638590606090a39291612137565b916113cf565b633da906b960e01b60005260045260245260446000fd5b634e487b7160e01b600052601160045260246000fd5b50600454600019810190811161153c578514611409565b5060045484106113e2565b33600081815260036020526040812080546001600160a01b0319166001600160a01b0385161790559091907f5f7165288eef601591cf549e15ff19ef9060b7f71b9c115be946fa1fe7ebf68a9080a3806113a3565b6316fb166f60e01b60005260045260246000fd5b50338114611380565b6115ee612479565b9060405160208184516116048183858901611c95565b60059082019081520301902080546001600160a01b03191633908117909155600090815260066020526040902082516001600160401b0381116107ea5761164b8254611e46565b601f81116116f7575b506020601f82116001146116925781929394600092611687575b50508160011b916000199060031b1c1916179055611348565b01519050848061166e565b601f1982169083600052806000209160005b8181106116df575095836001959697106116c6575b505050811b019055611348565b015160001960f88460031b161c191690558480806116b9565b9192602060018192868b0151815501940192016116a4565b826000526020600020601f830160051c81019160208410611735575b601f0160051c01905b8181106117295750611654565b6000815560010161171c565b9091508190611713565b63ebbfb3bb60e01b6000523460045260245260446000fd5b3461019457604036600319011261019457611770611cdd565b60243561177b612200565b6001600160a01b0382169182156108005760005b8281106118e257838060005260066020526117ae604060002054611e46565b156117b557005b6117bd612479565b9060405160208184516117d38183858901611c95565b81016005815203019020816bffffffffffffffffffffffff60a01b8254161790556000526006602052604060002081516001600160401b0381116107ea5761181b8254611e46565b601f811161189a575b50602092601f821160011461185457928192936000926107375750508160011b916000199060031b1c1916179055005b601f1982169383600052806000209160005b868110611882575083600195961061077157505050811b019055005b91926020600181928685015181550194019201611866565b826000526020600020601f830160051c810191602084106118d8575b601f0160051c01905b8181106118cc5750611824565b600081556001016118bf565b90915081906118b6565b6001906118f160025484612236565b611927600254867f4cc0a9c4a99ddc700de1af2c9f916a7cbfdb71f14801ccff94061ad1ef8a80406020604051848152a2612137565b6002550161178f565b346101945761019261194136611d09565b9060405192611951602085611d43565b60008452610314838383611f27565b346101945760203660031901126101945760043561197c612200565b4781116119ad57600080808093335af1611994612107565b501561199c57005b63351dc55d60e21b60005260046000fd5b631e9acf1760e31b60005260046000fd5b34610194576020366003190112610194576004356001600160401b038111610194576119f06020913690600401611db6565b81611a046040519283815193849201611c95565b600590820190815281900382019020546040516001600160a01b039091168152f35b3461019457610192611a3736611d09565b91611f27565b3461019457604036600319011261019457611a56611cdd565b602435611a62816121cf565b33151580611b1c575b80611af8575b611ae35781906001600160a01b0384811691167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600080a460009081526000805160206127288339815191526020526040902080546001600160a01b0319166001600160a01b03909216919091179055005b63a9fbf51f60e01b6000523360045260246000fd5b50611b0281611e0d565b336000908152602091909152604090205460ff1615611a71565b506001600160a01b038116331415611a6b565b34610194576020366003190112610194576020610907600435611b51816121cf565b50600090815260008051602061272883398151915260205260409020546001600160a01b031690565b346101945760003660031901126101945760405160006000805160206126c883398151915254611ba981611e46565b80845290600181169081156105695750600114611bd0576102308361021c81850382611d43565b6000805160206126c88339815191526000908152600080516020612788833981519152939250905b808210611c105750909150810160200161021c6104ed565b919260018160209254838588010152019101909291611bf8565b34610194576020366003190112610194576004359063ffffffff60e01b8216809203610194576020916380ac58cd60e01b8114908115611c84575b8115611c73575b5015158152f35b6301ffc9a760e01b14905083611c6c565b635b5e139f60e01b81149150611c65565b60005b838110611ca85750506000910152565b8181015183820152602001611c98565b90602091611cd181518092818552858086019101611c95565b601f01601f1916010190565b600435906001600160a01b038216820361019457565b602435906001600160a01b038216820361019457565b6060906003190112610194576004356001600160a01b038116810361019457906024356001600160a01b0381168103610194579060443590565b90601f801991011681019081106001600160401b038211176107ea57604052565b6001600160401b0381116107ea57601f01601f191660200190565b929192611d8b82611d64565b91611d996040519384611d43565b829481845281830111610194578281602093846000960137010152565b9080601f8301121561019457816020611dd193359101611d7f565b90565b6001600160a01b031660009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793036020526040902090565b6001600160a01b031660009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793056020526040902090565b90600182811c92168015611e76575b6020831014611e6057565b634e487b7160e01b600052602260045260246000fd5b91607f1691611e55565b6040519060008260075491611e9483611e46565b8083529260018116908115611f085750600114611eba575b611eb892500383611d43565b565b506007600090815290916000805160206127088339815191525b818310611eec575050906020611eb892820101611eac565b6020919350806001915483858901015201910190918492611ed4565b60209250611eb894915060ff191682840152151560051b820101611eac565b909291906001600160a01b03841680156120f157600094611f478461265f565b9533151580612045575b509184917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611f9297989460018060a01b0386169889938461200657611dd4565b805460010190558481527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793026020526040812080546001600160a01b0319168517905580a4506001600160a01b0316808303611fec57505050565b6364283d7b60e01b60005260045260245260445260646000fd5b60008781526000805160206127288339815191526020526040902080546001600160a01b031916905561203888611dd4565b8054600019019055611dd4565b8061208e575b156120565738611f51565b84906001600160a01b03881661207857602491637e27328960e01b8252600452fd5b60449163177e802f60e01b825233600452602452fd5b506001600160a01b038716331480156120d4575b8061204b5750600085815260008051602061272883398151915260205260409020546001600160a01b0316331461204b565b506120de87611e0d565b338252602052604081205460ff166120a2565b633250574960e11b600052600060045260246000fd5b3d15612132573d9061211882611d64565b916121266040519384611d43565b82523d6000602084013e565b606090565b600019811461153c5760010190565b8181029291811591840414171561153c57565b6001600160a01b031680156121b9576000805160206126e883398151915280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b631e4fbdf760e01b600052600060045260246000fd5b6121d88161265f565b906001600160a01b038216156121ec575090565b637e27328960e01b60005260045260246000fd5b6000805160206126e8833981519152546001600160a01b0316330361222157565b63118cdaa760e01b6000523360045260246000fd5b90602090604051906122488383611d43565b600082526001600160a01b0384169384156120f1576122668261265f565b6001600160a01b03811680151591908490889084612413575b61228886611dd4565b8054600101905560008381527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793028a526040812080546001600160a01b031916841790557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9080a4506123fd573b612300575b50505050565b9161233e91819495936040519384928392630a85bd0160e11b8452336004850152600060248501526044840152608060648401526084830190611cb8565b03816000885af180916000916123b8575b509061237f57505061235f612107565b8051918261237c5783633250574960e11b60005260045260246000fd5b01fd5b909291506001600160e01b03191663757a42ff60e11b016123a45750388080806122fa565b633250574960e11b60005260045260246000fd5b8481813d83116123f6575b6123cd8183611d43565b810103126123f25751906001600160e01b0319821682036123ef57503861234f565b80fd5b5080fd5b503d6123c3565b6339e3563760e11b600052600060045260246000fd5b60008381526000805160206127288339815191526020526040902080546001600160a01b031916905561244584611dd4565b805460001901905561227f565b908151811015612463570160200190565b634e487b7160e01b600052603260045260246000fd5b60606040516124888282611d43565b602481527f6162636465666768696a6b6c6d6e6f707172737475767778797a3031323334356020820152633637383960e01b60408201526040918251926124cf8185611d43565b60068452601f19810136602086013760005b600681106124f0575050505090565b8151602081019042825244848201528285820152848152612512608082611d43565b5190209084519182156125485761253260019360ff60f81b920687612452565b511660001a6125418288612452565b53016124e1565b634e487b7160e01b600052601260045260246000fd5b823b61256c575b5050505050565b604051630a85bd0160e11b81526001600160a01b0391821660048201529181166024830152604482019390935260806064820152911691602090829081906125b8906084830190611cb8565b03816000865af1809160009161261c575b50906125fa57506125d8612107565b805190816125f55782633250574960e11b60005260045260246000fd5b602001fd5b6001600160e01b03191663757a42ff60e11b016123a457503880808080612565565b6020813d602011612657575b8161263560209383611d43565b810103126123f25751906001600160e01b0319821682036123ef5750386125c9565b3d9150612628565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930260205260409020546001600160a01b031690565b60ff6000805160206127488339815191525460401c16156126b657565b631afcd79f60e31b60005260046000fdfe80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793009016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300a66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68880bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab0079304f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0080bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930137c58c799b6609234b945e882912ee9ad34948a1dfaa20a97485e1a7752bbf81a2646970667358221220a30a30ec6baded585ddaf4d70f7b04b8309fa873725c9e85626e326d78c84d9364736f6c634300081c0033",
904
+ "deployedBytecode": "0x608080604052600436101561001357600080fd5b60003560e01c90816301ffc9a714611c2a5750806306fdde0314611b7a578063081812fc14611b2f578063095ea7b314611a3d57806323b872dd14611a265780632655e840146119be5780632e1a7d4d1461196057806342842e0e1461193057806343508b0514611757578063492cc769146112af5780634a3b68cc1461126d57806355f804b3146110985780635f1e6f6d146109195780636352211e146108e95780636c0360eb146108cd57806370a082311461087b578063715018a614610811578063755edd171461060257806384d8ad13146105e45780638da5cb5b146105ae57806391b7f5ed1461058d57806395d89b41146104a65780639b2c76d4146103d4578063a035b1fe146103b6578063a22cb4651461031a578063b88d4fde146102af578063c15edf5f14610291578063c87b56dd146101e7578063e985e9c5146101995763f2fde38b1461016957600080fd5b3461019457602036600319011261019457610192610185611cdd565b61018d612200565b612159565b005b600080fd5b34610194576040366003190112610194576101b2611cdd565b6101c36101bd611cf3565b91611e0d565b9060018060a01b0316600052602052602060ff604060002054166040519015158152f35b34610194576020366003190112610194576001600160a01b0361020b6004356121cf565b16156102345761023061021c611e80565b604051918291602083526020830190611cb8565b0390f35b60405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608490fd5b34610194576000366003190112610194576020600154604051908152f35b34610194576080366003190112610194576102c8611cdd565b6102d0611cf3565b90604435606435926001600160401b038411610194573660238501121561019457610308610192943690602481600401359101611d7f565b92610314838383611f27565b3361255e565b3461019457604036600319011261019457610333611cdd565b60243590811515809203610194576001600160a01b03169081156103a15761035a33611e0d565b82600052602052604060002060ff1981541660ff83161790556040519081527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a3005b50630b61174360e31b60005260045260246000fd5b34610194576000366003190112610194576020600054604051908152f35b34610194576020366003190112610194576001600160a01b036103f5611cdd565b16600052600660205260406000206040519060009080549061041682611e46565b808552916001811690811561047f575060011461043e575b6102308461021c81860382611d43565b600090815260208120939250905b8082106104655750909150810160200161021c8261042e565b91926001816020925483858801015201910190929161044c565b60ff191660208087019190915292151560051b8501909201925061021c915083905061042e565b34610194576000366003190112610194576040516000600080516020612768833981519152546104d581611e46565b808452906001811690811561056957506001146104fd575b6102308361021c81850382611d43565b60008051602061276883398151915260009081527ff4bad0a69248f59680a4f2b3000328cec71a413447c96781cfe5996daa8c456e939250905b80821061054f5750909150810160200161021c6104ed565b919260018160209254838588010152019101909291610537565b60ff191660208086019190915291151560051b8401909101915061021c90506104ed565b34610194576020366003190112610194576105a6612200565b600435600055005b34610194576000366003190112610194576000805160206126e8833981519152546040516001600160a01b039091168152602090f35b34610194576000366003190112610194576020600454604051908152f35b346101945760203660031901126101945761061b611cdd565b610623612200565b6001600160a01b0381169081156108005760025461064091612236565b610676600254827f4cc0a9c4a99ddc700de1af2c9f916a7cbfdb71f14801ccff94061ad1ef8a80406020604051848152a2612137565b600255806000526006602052610690604060002054611e46565b1561069757005b61069f612479565b9060405160208184516106b58183858901611c95565b81016005815203019020816bffffffffffffffffffffffff60a01b8254161790556000526006602052604060002081516001600160401b0381116107ea576106fd8254611e46565b601f81116107a2575b50602092601f82116001146107425792819293600092610737575b50508160011b916000199060031b1c1916179055005b015190508380610721565b601f1982169383600052806000209160005b86811061078a5750836001959610610771575b505050811b019055005b015160001960f88460031b161c19169055838080610767565b91926020600181928685015181550194019201610754565b826000526020600020601f830160051c810191602084106107e0575b601f0160051c01905b8181106107d45750610706565b600081556001016107c7565b90915081906107be565b634e487b7160e01b600052604160045260246000fd5b634e46966960e11b60005260046000fd5b346101945760003660031901126101945761082a612200565b6000805160206126e883398151915280546001600160a01b031981169091556000906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461019457602036600319011261019457610894611cdd565b6001600160a01b038116156108b7576108ae602091611dd4565b54604051908152f35b6322718ad960e21b600052600060045260246000fd5b346101945760003660031901126101945761023061021c611e80565b346101945760203660031901126101945760206109076004356121cf565b6040516001600160a01b039091168152f35b3461019457608036600319011261019457610932611cdd565b6024356001600160401b03811161019457610951903690600401611db6565b6044356001600160401b03811161019457610970903690600401611db6565b916064356001600160401b03811161019457610990903690600401611db6565b91600080516020612748833981519152549060ff8260401c1615916001600160401b03811680159081611090575b6001149081611086575b15908161107d575b5061106c5767ffffffffffffffff198116600117600080516020612748833981519152558261103f575b50610a03612699565b610a0b612699565b8051906001600160401b0382116107ea578190610a366000805160206126c883398151915254611e46565b601f8111610fbb575b50602090601f8311600114610f2d57600092610f22575b50508160011b916000199060031b1c1916176000805160206126c8833981519152555b83516001600160401b0381116107ea57610aa160008051602061276883398151915254611e46565b601f8111610eb0575b50602094601f8211600114610e2f57948192939495600092610e24575b50508160011b916000199060031b1c191617600080516020612768833981519152555b610af2612699565b610afa612699565b610b0382612159565b610b0b612200565b610b1482612159565b66038d7ea4c6800060005560146001556004805582516001600160401b0381116107ea57610b43600754611e46565b601f8111610db7575b506020601f8211600114610d455781929394600092610d3a575b50508160011b916000199060031b1c1916176007555b610b84612479565b916040516020818551610b9a8183858a01611c95565b60059082019081520301902080546001600160a01b0319166001600160a01b03929092169182179055600090815260066020526040902082516001600160401b0381116107ea57610beb8254611e46565b601f8111610cf2575b506020601f8211600114610c8d5781929394600092610c82575b50508160011b916000199060031b1c19161790555b610c2957005b68ff0000000000000000196000805160206127488339815191525416600080516020612748833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b015190508480610c0e565b601f1982169083600052806000209160005b818110610cda57509583600195969710610cc1575b505050811b019055610c23565b015160001960f88460031b161c19169055848080610cb4565b9192602060018192868b015181550194019201610c9f565b826000526020600020601f830160051c81019160208410610d30575b601f0160051c01905b818110610d245750610bf4565b60008155600101610d17565b9091508190610d0e565b015190508480610b66565b601f1982169060076000526000805160206127088339815191529160005b818110610d9f57509583600195969710610d86575b505050811b01600755610b7c565b015160001960f88460031b161c19169055848080610d78565b9192602060018192868b015181550194019201610d63565b6007600052601f820160051c600080516020612708833981519152019060208310610e0e575b601f0160051c60008051602061270883398151915201905b818110610e025750610b4c565b60008155600101610df5565b6000805160206127088339815191529150610ddd565b015190508580610ac7565b601f19821695600080516020612768833981519152600052806000209160005b888110610e9857508360019596979810610e7f575b505050811b0160008051602061276883398151915255610aea565b015160001960f88460031b161c19169055858080610e64565b91926020600181928685015181550194019201610e4f565b6000805160206127688339815191526000527ff4bad0a69248f59680a4f2b3000328cec71a413447c96781cfe5996daa8c456e601f830160051c81019160208410610f18575b601f0160051c01905b818110610f0c5750610aaa565b60008155600101610eff565b9091508190610ef6565b015190508680610a56565b6000805160206126c883398151915260009081526000805160206127888339815191529350601f198516905b818110610fa35750908460019594939210610f8a575b505050811b016000805160206126c883398151915255610a79565b015160001960f88460031b161c19169055868080610f6f565b92936020600181928786015181550195019301610f59565b9091506000805160206126c8833981519152600052601f830160051c600080516020612788833981519152019060208410611029575b90601f8493920160051c60008051602061278883398151915201905b81811061101a5750610a3f565b6000815584935060010161100d565b6000805160206127888339815191529150610ff1565b68ffffffffffffffffff1916680100000000000000011760008051602061274883398151915255856109fa565b63f92ee8a960e01b60005260046000fd5b905015876109d0565b303b1591506109c8565b8491506109be565b34610194576020366003190112610194576004356001600160401b038111610194576110c8903690600401611db6565b6110d0612200565b80516001600160401b0381116107ea576110eb600754611e46565b601f8111611200575b506020601f821160011461116a57918161115a927f5411e8ebf1636d9e83d5fc4900bf80cbac82e8790da2a4c94db4895e889eedf69460009161115f575b508160011b916000199060031b1c191617600755604051918291602083526020830190611cb8565b0390a1005b905082015185611132565b601f1982169060076000526000805160206127088339815191529160005b8181106111e85750927f5411e8ebf1636d9e83d5fc4900bf80cbac82e8790da2a4c94db4895e889eedf694926001928261115a96106111cf575b5050811b0160075561021c565b84015160001960f88460031b161c1916905585806111c2565b91926020600181928689015181550194019201611188565b6007600052601f820160051c600080516020612708833981519152019060208310611257575b601f0160051c60008051602061270883398151915201905b81811061124b57506110f4565b6000815560010161123e565b6000805160206127088339815191529150611226565b34610194576020366003190112610194576001600160a01b0361128e611cdd565b166000526003602052602060018060a01b0360406000205416604051908152f35b6020366003190112610194576004356001600160401b038111610194576112da903690600401611db6565b60005480340361173f57506112f160025433612236565b6113286002546040518181527f4cc0a9c4a99ddc700de1af2c9f916a7cbfdb71f14801ccff94061ad1ef8a804060203392a2612137565b600255336000526006602052611342604060002054611e46565b156115e6575b602061135d6040519283815193849201611c95565b60059082019081528190036020019020546001600160a01b0316801580156115dd575b6115c957336000908152600360205260409020546001600160a01b031615611574575b5060646113b260015434612146565b0433600052600360205260018060a01b0360406000205416906000915b6001600160a01b03811680151580611569575b15610192576000818152600360205260409020546001600160a01b03169081158015611552575b156114945750506001600160a01b031690600080808084865af161142b612107565b501561147c576114777f02ed85443f0661a84c4e0306728875b8e1dab887acb3f834fc8d74fa8cea63859160405191829133963491846040919493926060820195825260208201520152565b0390a3005b90633da906b960e01b60005260045260245260446000fd5b9091506001939293546064036064811161153c576114b460649186612146565b049081850394851161153c57600080808085855af16114d1612107565b5015611525576040805192835260208301859052349083015261151f92913391907f02ed85443f0661a84c4e0306728875b8e1dab887acb3f834fc8d74fa8cea638590606090a39291612137565b916113cf565b633da906b960e01b60005260045260245260446000fd5b634e487b7160e01b600052601160045260246000fd5b50600454600019810190811161153c578514611409565b5060045484106113e2565b33600081815260036020526040812080546001600160a01b0319166001600160a01b0385161790559091907f5f7165288eef601591cf549e15ff19ef9060b7f71b9c115be946fa1fe7ebf68a9080a3806113a3565b6316fb166f60e01b60005260045260246000fd5b50338114611380565b6115ee612479565b9060405160208184516116048183858901611c95565b60059082019081520301902080546001600160a01b03191633908117909155600090815260066020526040902082516001600160401b0381116107ea5761164b8254611e46565b601f81116116f7575b506020601f82116001146116925781929394600092611687575b50508160011b916000199060031b1c1916179055611348565b01519050848061166e565b601f1982169083600052806000209160005b8181106116df575095836001959697106116c6575b505050811b019055611348565b015160001960f88460031b161c191690558480806116b9565b9192602060018192868b0151815501940192016116a4565b826000526020600020601f830160051c81019160208410611735575b601f0160051c01905b8181106117295750611654565b6000815560010161171c565b9091508190611713565b63ebbfb3bb60e01b6000523460045260245260446000fd5b3461019457604036600319011261019457611770611cdd565b60243561177b612200565b6001600160a01b0382169182156108005760005b8281106118e257838060005260066020526117ae604060002054611e46565b156117b557005b6117bd612479565b9060405160208184516117d38183858901611c95565b81016005815203019020816bffffffffffffffffffffffff60a01b8254161790556000526006602052604060002081516001600160401b0381116107ea5761181b8254611e46565b601f811161189a575b50602092601f821160011461185457928192936000926107375750508160011b916000199060031b1c1916179055005b601f1982169383600052806000209160005b868110611882575083600195961061077157505050811b019055005b91926020600181928685015181550194019201611866565b826000526020600020601f830160051c810191602084106118d8575b601f0160051c01905b8181106118cc5750611824565b600081556001016118bf565b90915081906118b6565b6001906118f160025484612236565b611927600254867f4cc0a9c4a99ddc700de1af2c9f916a7cbfdb71f14801ccff94061ad1ef8a80406020604051848152a2612137565b6002550161178f565b346101945761019261194136611d09565b9060405192611951602085611d43565b60008452610314838383611f27565b346101945760203660031901126101945760043561197c612200565b4781116119ad57600080808093335af1611994612107565b501561199c57005b63351dc55d60e21b60005260046000fd5b631e9acf1760e31b60005260046000fd5b34610194576020366003190112610194576004356001600160401b038111610194576119f06020913690600401611db6565b81611a046040519283815193849201611c95565b600590820190815281900382019020546040516001600160a01b039091168152f35b3461019457610192611a3736611d09565b91611f27565b3461019457604036600319011261019457611a56611cdd565b602435611a62816121cf565b33151580611b1c575b80611af8575b611ae35781906001600160a01b0384811691167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600080a460009081526000805160206127288339815191526020526040902080546001600160a01b0319166001600160a01b03909216919091179055005b63a9fbf51f60e01b6000523360045260246000fd5b50611b0281611e0d565b336000908152602091909152604090205460ff1615611a71565b506001600160a01b038116331415611a6b565b34610194576020366003190112610194576020610907600435611b51816121cf565b50600090815260008051602061272883398151915260205260409020546001600160a01b031690565b346101945760003660031901126101945760405160006000805160206126c883398151915254611ba981611e46565b80845290600181169081156105695750600114611bd0576102308361021c81850382611d43565b6000805160206126c88339815191526000908152600080516020612788833981519152939250905b808210611c105750909150810160200161021c6104ed565b919260018160209254838588010152019101909291611bf8565b34610194576020366003190112610194576004359063ffffffff60e01b8216809203610194576020916380ac58cd60e01b8114908115611c84575b8115611c73575b5015158152f35b6301ffc9a760e01b14905083611c6c565b635b5e139f60e01b81149150611c65565b60005b838110611ca85750506000910152565b8181015183820152602001611c98565b90602091611cd181518092818552858086019101611c95565b601f01601f1916010190565b600435906001600160a01b038216820361019457565b602435906001600160a01b038216820361019457565b6060906003190112610194576004356001600160a01b038116810361019457906024356001600160a01b0381168103610194579060443590565b90601f801991011681019081106001600160401b038211176107ea57604052565b6001600160401b0381116107ea57601f01601f191660200190565b929192611d8b82611d64565b91611d996040519384611d43565b829481845281830111610194578281602093846000960137010152565b9080601f8301121561019457816020611dd193359101611d7f565b90565b6001600160a01b031660009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793036020526040902090565b6001600160a01b031660009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793056020526040902090565b90600182811c92168015611e76575b6020831014611e6057565b634e487b7160e01b600052602260045260246000fd5b91607f1691611e55565b6040519060008260075491611e9483611e46565b8083529260018116908115611f085750600114611eba575b611eb892500383611d43565b565b506007600090815290916000805160206127088339815191525b818310611eec575050906020611eb892820101611eac565b6020919350806001915483858901015201910190918492611ed4565b60209250611eb894915060ff191682840152151560051b820101611eac565b909291906001600160a01b03841680156120f157600094611f478461265f565b9533151580612045575b509184917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611f9297989460018060a01b0386169889938461200657611dd4565b805460010190558481527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793026020526040812080546001600160a01b0319168517905580a4506001600160a01b0316808303611fec57505050565b6364283d7b60e01b60005260045260245260445260646000fd5b60008781526000805160206127288339815191526020526040902080546001600160a01b031916905561203888611dd4565b8054600019019055611dd4565b8061208e575b156120565738611f51565b84906001600160a01b03881661207857602491637e27328960e01b8252600452fd5b60449163177e802f60e01b825233600452602452fd5b506001600160a01b038716331480156120d4575b8061204b5750600085815260008051602061272883398151915260205260409020546001600160a01b0316331461204b565b506120de87611e0d565b338252602052604081205460ff166120a2565b633250574960e11b600052600060045260246000fd5b3d15612132573d9061211882611d64565b916121266040519384611d43565b82523d6000602084013e565b606090565b600019811461153c5760010190565b8181029291811591840414171561153c57565b6001600160a01b031680156121b9576000805160206126e883398151915280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b631e4fbdf760e01b600052600060045260246000fd5b6121d88161265f565b906001600160a01b038216156121ec575090565b637e27328960e01b60005260045260246000fd5b6000805160206126e8833981519152546001600160a01b0316330361222157565b63118cdaa760e01b6000523360045260246000fd5b90602090604051906122488383611d43565b600082526001600160a01b0384169384156120f1576122668261265f565b6001600160a01b03811680151591908490889084612413575b61228886611dd4565b8054600101905560008381527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793028a526040812080546001600160a01b031916841790557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9080a4506123fd573b612300575b50505050565b9161233e91819495936040519384928392630a85bd0160e11b8452336004850152600060248501526044840152608060648401526084830190611cb8565b03816000885af180916000916123b8575b509061237f57505061235f612107565b8051918261237c5783633250574960e11b60005260045260246000fd5b01fd5b909291506001600160e01b03191663757a42ff60e11b016123a45750388080806122fa565b633250574960e11b60005260045260246000fd5b8481813d83116123f6575b6123cd8183611d43565b810103126123f25751906001600160e01b0319821682036123ef57503861234f565b80fd5b5080fd5b503d6123c3565b6339e3563760e11b600052600060045260246000fd5b60008381526000805160206127288339815191526020526040902080546001600160a01b031916905561244584611dd4565b805460001901905561227f565b908151811015612463570160200190565b634e487b7160e01b600052603260045260246000fd5b60606040516124888282611d43565b602481527f6162636465666768696a6b6c6d6e6f707172737475767778797a3031323334356020820152633637383960e01b60408201526040918251926124cf8185611d43565b60068452601f19810136602086013760005b600681106124f0575050505090565b8151602081019042825244848201528285820152848152612512608082611d43565b5190209084519182156125485761253260019360ff60f81b920687612452565b511660001a6125418288612452565b53016124e1565b634e487b7160e01b600052601260045260246000fd5b823b61256c575b5050505050565b604051630a85bd0160e11b81526001600160a01b0391821660048201529181166024830152604482019390935260806064820152911691602090829081906125b8906084830190611cb8565b03816000865af1809160009161261c575b50906125fa57506125d8612107565b805190816125f55782633250574960e11b60005260045260246000fd5b602001fd5b6001600160e01b03191663757a42ff60e11b016123a457503880808080612565565b6020813d602011612657575b8161263560209383611d43565b810103126123f25751906001600160e01b0319821682036123ef5750386125c9565b3d9150612628565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930260205260409020546001600160a01b031690565b60ff6000805160206127488339815191525460401c16156126b657565b631afcd79f60e31b60005260046000fdfe80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793009016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300a66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68880bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab0079304f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0080bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930137c58c799b6609234b945e882912ee9ad34948a1dfaa20a97485e1a7752bbf81a2646970667358221220a30a30ec6baded585ddaf4d70f7b04b8309fa873725c9e85626e326d78c84d9364736f6c634300081c0033",
825
905
  "linkReferences": {},
826
906
  "deployedLinkReferences": {}
827
907
  }
@@ -1,15 +1,20 @@
1
1
  import type { BaseContract, BigNumberish, BytesLike, FunctionFragment, Result, Interface, EventFragment, AddressLike, ContractRunner, ContractMethod, Listener } from "ethers";
2
- import type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedLogDescription, TypedListener, TypedContractMethod } from "../common";
3
- export interface MultiLevelReferralNFTInterface extends Interface {
4
- getFunction(nameOrSignature: "approve" | "balanceOf" | "buy" | "getApproved" | "initialize" | "isApprovedForAll" | "maxReferralLevels" | "name" | "owner" | "ownerOf" | "price" | "referralCodes" | "referrers" | "renounceOwnership" | "safeTransferFrom(address,address,uint256)" | "safeTransferFrom(address,address,uint256,bytes)" | "setApprovalForAll" | "setPrice" | "sharePercent" | "supportsInterface" | "symbol" | "tokenURI" | "transferFrom" | "transferOwnership" | "userReferralCodes" | "withdraw"): FunctionFragment;
5
- getEvent(nameOrSignatureOrTopic: "Approval" | "ApprovalForAll" | "Initialized" | "NFTMinted" | "OwnershipTransferred" | "ReferralPaid" | "ReferrerSet" | "Transfer"): EventFragment;
2
+ import type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedLogDescription, TypedListener, TypedContractMethod } from "../../common";
3
+ export interface NFTTicketInterface extends Interface {
4
+ getFunction(nameOrSignature: "approve" | "balanceOf" | "baseURI" | "batchMint" | "buy" | "generateReferralCode" | "generateReferralCodeForUser" | "getApproved" | "initialize" | "isApprovedForAll" | "maxReferralLevels" | "mintTo" | "name" | "owner" | "ownerOf" | "price" | "referralCodes" | "referrers" | "renounceOwnership" | "safeTransferFrom(address,address,uint256)" | "safeTransferFrom(address,address,uint256,bytes)" | "setApprovalForAll" | "setBaseURI" | "setPrice" | "sharePercent" | "supportsInterface" | "symbol" | "tokenURI" | "transferFrom" | "transferOwnership" | "userReferralCodes" | "withdraw"): FunctionFragment;
5
+ getEvent(nameOrSignatureOrTopic: "Approval" | "ApprovalForAll" | "BaseURIChanged" | "Initialized" | "NFTMinted" | "OwnershipTransferred" | "ReferralCodeSet" | "ReferralPaid" | "ReferrerSet" | "Transfer"): EventFragment;
6
6
  encodeFunctionData(functionFragment: "approve", values: [AddressLike, BigNumberish]): string;
7
7
  encodeFunctionData(functionFragment: "balanceOf", values: [AddressLike]): string;
8
+ encodeFunctionData(functionFragment: "baseURI", values?: undefined): string;
9
+ encodeFunctionData(functionFragment: "batchMint", values: [AddressLike, BigNumberish]): string;
8
10
  encodeFunctionData(functionFragment: "buy", values: [string]): string;
11
+ encodeFunctionData(functionFragment: "generateReferralCode", values?: undefined): string;
12
+ encodeFunctionData(functionFragment: "generateReferralCodeForUser", values: [AddressLike]): string;
9
13
  encodeFunctionData(functionFragment: "getApproved", values: [BigNumberish]): string;
10
- encodeFunctionData(functionFragment: "initialize", values: [AddressLike, string, string]): string;
14
+ encodeFunctionData(functionFragment: "initialize", values: [AddressLike, string, string, string]): string;
11
15
  encodeFunctionData(functionFragment: "isApprovedForAll", values: [AddressLike, AddressLike]): string;
12
16
  encodeFunctionData(functionFragment: "maxReferralLevels", values?: undefined): string;
17
+ encodeFunctionData(functionFragment: "mintTo", values: [AddressLike]): string;
13
18
  encodeFunctionData(functionFragment: "name", values?: undefined): string;
14
19
  encodeFunctionData(functionFragment: "owner", values?: undefined): string;
15
20
  encodeFunctionData(functionFragment: "ownerOf", values: [BigNumberish]): string;
@@ -20,6 +25,7 @@ export interface MultiLevelReferralNFTInterface extends Interface {
20
25
  encodeFunctionData(functionFragment: "safeTransferFrom(address,address,uint256)", values: [AddressLike, AddressLike, BigNumberish]): string;
21
26
  encodeFunctionData(functionFragment: "safeTransferFrom(address,address,uint256,bytes)", values: [AddressLike, AddressLike, BigNumberish, BytesLike]): string;
22
27
  encodeFunctionData(functionFragment: "setApprovalForAll", values: [AddressLike, boolean]): string;
28
+ encodeFunctionData(functionFragment: "setBaseURI", values: [string]): string;
23
29
  encodeFunctionData(functionFragment: "setPrice", values: [BigNumberish]): string;
24
30
  encodeFunctionData(functionFragment: "sharePercent", values?: undefined): string;
25
31
  encodeFunctionData(functionFragment: "supportsInterface", values: [BytesLike]): string;
@@ -31,11 +37,16 @@ export interface MultiLevelReferralNFTInterface extends Interface {
31
37
  encodeFunctionData(functionFragment: "withdraw", values: [BigNumberish]): string;
32
38
  decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result;
33
39
  decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result;
40
+ decodeFunctionResult(functionFragment: "baseURI", data: BytesLike): Result;
41
+ decodeFunctionResult(functionFragment: "batchMint", data: BytesLike): Result;
34
42
  decodeFunctionResult(functionFragment: "buy", data: BytesLike): Result;
43
+ decodeFunctionResult(functionFragment: "generateReferralCode", data: BytesLike): Result;
44
+ decodeFunctionResult(functionFragment: "generateReferralCodeForUser", data: BytesLike): Result;
35
45
  decodeFunctionResult(functionFragment: "getApproved", data: BytesLike): Result;
36
46
  decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result;
37
47
  decodeFunctionResult(functionFragment: "isApprovedForAll", data: BytesLike): Result;
38
48
  decodeFunctionResult(functionFragment: "maxReferralLevels", data: BytesLike): Result;
49
+ decodeFunctionResult(functionFragment: "mintTo", data: BytesLike): Result;
39
50
  decodeFunctionResult(functionFragment: "name", data: BytesLike): Result;
40
51
  decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result;
41
52
  decodeFunctionResult(functionFragment: "ownerOf", data: BytesLike): Result;
@@ -46,6 +57,7 @@ export interface MultiLevelReferralNFTInterface extends Interface {
46
57
  decodeFunctionResult(functionFragment: "safeTransferFrom(address,address,uint256)", data: BytesLike): Result;
47
58
  decodeFunctionResult(functionFragment: "safeTransferFrom(address,address,uint256,bytes)", data: BytesLike): Result;
48
59
  decodeFunctionResult(functionFragment: "setApprovalForAll", data: BytesLike): Result;
60
+ decodeFunctionResult(functionFragment: "setBaseURI", data: BytesLike): Result;
49
61
  decodeFunctionResult(functionFragment: "setPrice", data: BytesLike): Result;
50
62
  decodeFunctionResult(functionFragment: "sharePercent", data: BytesLike): Result;
51
63
  decodeFunctionResult(functionFragment: "supportsInterface", data: BytesLike): Result;
@@ -94,6 +106,17 @@ export declare namespace ApprovalForAllEvent {
94
106
  type Log = TypedEventLog<Event>;
95
107
  type LogDescription = TypedLogDescription<Event>;
96
108
  }
109
+ export declare namespace BaseURIChangedEvent {
110
+ type InputTuple = [newBaseURI: string];
111
+ type OutputTuple = [newBaseURI: string];
112
+ interface OutputObject {
113
+ newBaseURI: string;
114
+ }
115
+ type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
116
+ type Filter = TypedDeferredTopicFilter<Event>;
117
+ type Log = TypedEventLog<Event>;
118
+ type LogDescription = TypedLogDescription<Event>;
119
+ }
97
120
  export declare namespace InitializedEvent {
98
121
  type InputTuple = [version: BigNumberish];
99
122
  type OutputTuple = [version: bigint];
@@ -129,6 +152,18 @@ export declare namespace OwnershipTransferredEvent {
129
152
  type Log = TypedEventLog<Event>;
130
153
  type LogDescription = TypedLogDescription<Event>;
131
154
  }
155
+ export declare namespace ReferralCodeSetEvent {
156
+ type InputTuple = [user: AddressLike, referralCode: string];
157
+ type OutputTuple = [user: string, referralCode: string];
158
+ interface OutputObject {
159
+ user: string;
160
+ referralCode: string;
161
+ }
162
+ type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
163
+ type Filter = TypedDeferredTopicFilter<Event>;
164
+ type Log = TypedEventLog<Event>;
165
+ type LogDescription = TypedLogDescription<Event>;
166
+ }
132
167
  export declare namespace ReferralPaidEvent {
133
168
  type InputTuple = [
134
169
  receiver: AddressLike,
@@ -185,10 +220,10 @@ export declare namespace TransferEvent {
185
220
  type Log = TypedEventLog<Event>;
186
221
  type LogDescription = TypedLogDescription<Event>;
187
222
  }
188
- export interface MultiLevelReferralNFT extends BaseContract {
189
- connect(runner?: ContractRunner | null): MultiLevelReferralNFT;
223
+ export interface NFTTicket extends BaseContract {
224
+ connect(runner?: ContractRunner | null): NFTTicket;
190
225
  waitForDeployment(): Promise<this>;
191
- interface: MultiLevelReferralNFTInterface;
226
+ interface: NFTTicketInterface;
192
227
  queryFilter<TCEvent extends TypedContractEvent>(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
193
228
  queryFilter<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
194
229
  on<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
@@ -205,12 +240,26 @@ export interface MultiLevelReferralNFT extends BaseContract {
205
240
  void
206
241
  ], "nonpayable">;
207
242
  balanceOf: TypedContractMethod<[owner: AddressLike], [bigint], "view">;
243
+ baseURI: TypedContractMethod<[], [string], "view">;
244
+ batchMint: TypedContractMethod<[
245
+ recipient: AddressLike,
246
+ amount: BigNumberish
247
+ ], [
248
+ void
249
+ ], "nonpayable">;
208
250
  buy: TypedContractMethod<[_referralCode: string], [void], "payable">;
251
+ generateReferralCode: TypedContractMethod<[], [string], "nonpayable">;
252
+ generateReferralCodeForUser: TypedContractMethod<[
253
+ user: AddressLike
254
+ ], [
255
+ string
256
+ ], "nonpayable">;
209
257
  getApproved: TypedContractMethod<[tokenId: BigNumberish], [string], "view">;
210
258
  initialize: TypedContractMethod<[
211
259
  owner: AddressLike,
212
260
  name: string,
213
- symbol: string
261
+ symbol: string,
262
+ _baseURI: string
214
263
  ], [
215
264
  void
216
265
  ], "nonpayable">;
@@ -221,6 +270,7 @@ export interface MultiLevelReferralNFT extends BaseContract {
221
270
  boolean
222
271
  ], "view">;
223
272
  maxReferralLevels: TypedContractMethod<[], [bigint], "view">;
273
+ mintTo: TypedContractMethod<[recipient: AddressLike], [void], "nonpayable">;
224
274
  name: TypedContractMethod<[], [string], "view">;
225
275
  owner: TypedContractMethod<[], [string], "view">;
226
276
  ownerOf: TypedContractMethod<[tokenId: BigNumberish], [string], "view">;
@@ -249,6 +299,7 @@ export interface MultiLevelReferralNFT extends BaseContract {
249
299
  ], [
250
300
  void
251
301
  ], "nonpayable">;
302
+ setBaseURI: TypedContractMethod<[_baseURI: string], [void], "nonpayable">;
252
303
  setPrice: TypedContractMethod<[_price: BigNumberish], [void], "nonpayable">;
253
304
  sharePercent: TypedContractMethod<[], [bigint], "view">;
254
305
  supportsInterface: TypedContractMethod<[
@@ -280,12 +331,22 @@ export interface MultiLevelReferralNFT extends BaseContract {
280
331
  void
281
332
  ], "nonpayable">;
282
333
  getFunction(nameOrSignature: "balanceOf"): TypedContractMethod<[owner: AddressLike], [bigint], "view">;
334
+ getFunction(nameOrSignature: "baseURI"): TypedContractMethod<[], [string], "view">;
335
+ getFunction(nameOrSignature: "batchMint"): TypedContractMethod<[
336
+ recipient: AddressLike,
337
+ amount: BigNumberish
338
+ ], [
339
+ void
340
+ ], "nonpayable">;
283
341
  getFunction(nameOrSignature: "buy"): TypedContractMethod<[_referralCode: string], [void], "payable">;
342
+ getFunction(nameOrSignature: "generateReferralCode"): TypedContractMethod<[], [string], "nonpayable">;
343
+ getFunction(nameOrSignature: "generateReferralCodeForUser"): TypedContractMethod<[user: AddressLike], [string], "nonpayable">;
284
344
  getFunction(nameOrSignature: "getApproved"): TypedContractMethod<[tokenId: BigNumberish], [string], "view">;
285
345
  getFunction(nameOrSignature: "initialize"): TypedContractMethod<[
286
346
  owner: AddressLike,
287
347
  name: string,
288
- symbol: string
348
+ symbol: string,
349
+ _baseURI: string
289
350
  ], [
290
351
  void
291
352
  ], "nonpayable">;
@@ -296,6 +357,7 @@ export interface MultiLevelReferralNFT extends BaseContract {
296
357
  boolean
297
358
  ], "view">;
298
359
  getFunction(nameOrSignature: "maxReferralLevels"): TypedContractMethod<[], [bigint], "view">;
360
+ getFunction(nameOrSignature: "mintTo"): TypedContractMethod<[recipient: AddressLike], [void], "nonpayable">;
299
361
  getFunction(nameOrSignature: "name"): TypedContractMethod<[], [string], "view">;
300
362
  getFunction(nameOrSignature: "owner"): TypedContractMethod<[], [string], "view">;
301
363
  getFunction(nameOrSignature: "ownerOf"): TypedContractMethod<[tokenId: BigNumberish], [string], "view">;
@@ -324,6 +386,7 @@ export interface MultiLevelReferralNFT extends BaseContract {
324
386
  ], [
325
387
  void
326
388
  ], "nonpayable">;
389
+ getFunction(nameOrSignature: "setBaseURI"): TypedContractMethod<[_baseURI: string], [void], "nonpayable">;
327
390
  getFunction(nameOrSignature: "setPrice"): TypedContractMethod<[_price: BigNumberish], [void], "nonpayable">;
328
391
  getFunction(nameOrSignature: "sharePercent"): TypedContractMethod<[], [bigint], "view">;
329
392
  getFunction(nameOrSignature: "supportsInterface"): TypedContractMethod<[interfaceId: BytesLike], [boolean], "view">;
@@ -341,9 +404,11 @@ export interface MultiLevelReferralNFT extends BaseContract {
341
404
  getFunction(nameOrSignature: "withdraw"): TypedContractMethod<[_amount: BigNumberish], [void], "nonpayable">;
342
405
  getEvent(key: "Approval"): TypedContractEvent<ApprovalEvent.InputTuple, ApprovalEvent.OutputTuple, ApprovalEvent.OutputObject>;
343
406
  getEvent(key: "ApprovalForAll"): TypedContractEvent<ApprovalForAllEvent.InputTuple, ApprovalForAllEvent.OutputTuple, ApprovalForAllEvent.OutputObject>;
407
+ getEvent(key: "BaseURIChanged"): TypedContractEvent<BaseURIChangedEvent.InputTuple, BaseURIChangedEvent.OutputTuple, BaseURIChangedEvent.OutputObject>;
344
408
  getEvent(key: "Initialized"): TypedContractEvent<InitializedEvent.InputTuple, InitializedEvent.OutputTuple, InitializedEvent.OutputObject>;
345
409
  getEvent(key: "NFTMinted"): TypedContractEvent<NFTMintedEvent.InputTuple, NFTMintedEvent.OutputTuple, NFTMintedEvent.OutputObject>;
346
410
  getEvent(key: "OwnershipTransferred"): TypedContractEvent<OwnershipTransferredEvent.InputTuple, OwnershipTransferredEvent.OutputTuple, OwnershipTransferredEvent.OutputObject>;
411
+ getEvent(key: "ReferralCodeSet"): TypedContractEvent<ReferralCodeSetEvent.InputTuple, ReferralCodeSetEvent.OutputTuple, ReferralCodeSetEvent.OutputObject>;
347
412
  getEvent(key: "ReferralPaid"): TypedContractEvent<ReferralPaidEvent.InputTuple, ReferralPaidEvent.OutputTuple, ReferralPaidEvent.OutputObject>;
348
413
  getEvent(key: "ReferrerSet"): TypedContractEvent<ReferrerSetEvent.InputTuple, ReferrerSetEvent.OutputTuple, ReferrerSetEvent.OutputObject>;
349
414
  getEvent(key: "Transfer"): TypedContractEvent<TransferEvent.InputTuple, TransferEvent.OutputTuple, TransferEvent.OutputObject>;
@@ -352,12 +417,16 @@ export interface MultiLevelReferralNFT extends BaseContract {
352
417
  Approval: TypedContractEvent<ApprovalEvent.InputTuple, ApprovalEvent.OutputTuple, ApprovalEvent.OutputObject>;
353
418
  "ApprovalForAll(address,address,bool)": TypedContractEvent<ApprovalForAllEvent.InputTuple, ApprovalForAllEvent.OutputTuple, ApprovalForAllEvent.OutputObject>;
354
419
  ApprovalForAll: TypedContractEvent<ApprovalForAllEvent.InputTuple, ApprovalForAllEvent.OutputTuple, ApprovalForAllEvent.OutputObject>;
420
+ "BaseURIChanged(string)": TypedContractEvent<BaseURIChangedEvent.InputTuple, BaseURIChangedEvent.OutputTuple, BaseURIChangedEvent.OutputObject>;
421
+ BaseURIChanged: TypedContractEvent<BaseURIChangedEvent.InputTuple, BaseURIChangedEvent.OutputTuple, BaseURIChangedEvent.OutputObject>;
355
422
  "Initialized(uint64)": TypedContractEvent<InitializedEvent.InputTuple, InitializedEvent.OutputTuple, InitializedEvent.OutputObject>;
356
423
  Initialized: TypedContractEvent<InitializedEvent.InputTuple, InitializedEvent.OutputTuple, InitializedEvent.OutputObject>;
357
424
  "NFTMinted(address,uint256)": TypedContractEvent<NFTMintedEvent.InputTuple, NFTMintedEvent.OutputTuple, NFTMintedEvent.OutputObject>;
358
425
  NFTMinted: TypedContractEvent<NFTMintedEvent.InputTuple, NFTMintedEvent.OutputTuple, NFTMintedEvent.OutputObject>;
359
426
  "OwnershipTransferred(address,address)": TypedContractEvent<OwnershipTransferredEvent.InputTuple, OwnershipTransferredEvent.OutputTuple, OwnershipTransferredEvent.OutputObject>;
360
427
  OwnershipTransferred: TypedContractEvent<OwnershipTransferredEvent.InputTuple, OwnershipTransferredEvent.OutputTuple, OwnershipTransferredEvent.OutputObject>;
428
+ "ReferralCodeSet(address,string)": TypedContractEvent<ReferralCodeSetEvent.InputTuple, ReferralCodeSetEvent.OutputTuple, ReferralCodeSetEvent.OutputObject>;
429
+ ReferralCodeSet: TypedContractEvent<ReferralCodeSetEvent.InputTuple, ReferralCodeSetEvent.OutputTuple, ReferralCodeSetEvent.OutputObject>;
361
430
  "ReferralPaid(address,address,uint256,uint256,uint256)": TypedContractEvent<ReferralPaidEvent.InputTuple, ReferralPaidEvent.OutputTuple, ReferralPaidEvent.OutputObject>;
362
431
  ReferralPaid: TypedContractEvent<ReferralPaidEvent.InputTuple, ReferralPaidEvent.OutputTuple, ReferralPaidEvent.OutputObject>;
363
432
  "ReferrerSet(address,address)": TypedContractEvent<ReferrerSetEvent.InputTuple, ReferrerSetEvent.OutputTuple, ReferrerSetEvent.OutputObject>;
@@ -37,9 +37,20 @@
37
37
  "FairLaunch": "0xe13b4638aE2542Aa9893DC863C02D8d2d50E2035",
38
38
  "FairLaunch-implemented": "0xeA220B32271b7ded1B3D079A7a6A88499Fd6790f",
39
39
  "MultiLevelReferralNFT": "0xB183748cEb1060162e1ac95D59C82298e9Ef43D9",
40
- "MultiLevelReferralNFT-implemented": "0xe432279c60ee5024853E28936f897C4c4E9C2Cb9"
40
+ "MultiLevelReferralNFT-implemented": "0x8012522547Febe8daf9C23509A3BC97d8CCE8161",
41
+ "MultiLevelReferralNFT-implemented-old": "0xBeb206dE71c26B51557a48665F53d8Ef08399Fe9",
42
+ "NFTTicket": "0x3f1AC66384593AAF4d99B51776E1d7df00d2C271",
43
+ "NFTTicket-implemented": "0xE0E34596512Fdc3ea128c01880852cdf4FB7aF12"
41
44
  },
42
45
  "base": {
43
- "SeedRoundFundraiser": "0x3e7b414cAd1011c757dBA1a58212Db561dc9feeB"
46
+ "SeedRoundFundraiser": "0x3e7b414cAd1011c757dBA1a58212Db561dc9feeB",
47
+ "MultiLevelReferralNFT-deprecated": "0x252B6b4B6dfE4a77441b9715e09Ba2C9C7d1Ca2f",
48
+ "MultiLevelReferralNFT-implemented-deprecated": "0x77DF7C70EfB944b638645acac520d5a67813D087",
49
+ "MultiLevelReferralNFT-deprecated-1": "0x5f2801dAAc6220B1d9F2a018ABC7D653C0a1E7b2",
50
+ "MultiLevelReferralNFT-implemented-deprecated-1": "0x252B6b4B6dfE4a77441b9715e09Ba2C9C7d1Ca2f",
51
+ "MultiLevelReferralNFT": "0x5Fcee1455f74C936b0819a49e9AFC886E182b1A6",
52
+ "MultiLevelReferralNFT-implemented": "0xc1c5cb24f727Ad0e634F1347c8BD1396BC050c77",
53
+ "NFTTicket": "0x299d9923D9AfA0C3c7F868b948d504C4D6104b9F",
54
+ "NFTTicket-implemented": "0xc1c5cb24f727Ad0e634F1347c8BD1396BC050c77"
44
55
  }
45
56
  }
package/dist/types.d.ts CHANGED
@@ -379,6 +379,10 @@ export interface RawMultiLevelReferralNFTEventTypes {
379
379
  level: bigint;
380
380
  originalAmount: bigint;
381
381
  };
382
+ ReferralCodeSet: {
383
+ user: string;
384
+ referralCode: string;
385
+ };
382
386
  }
383
387
  export interface MultiLevelReferralNFTEventTypes {
384
388
  NFTMinted: {
@@ -396,6 +400,10 @@ export interface MultiLevelReferralNFTEventTypes {
396
400
  level: number;
397
401
  originalAmount: number;
398
402
  };
403
+ ReferralCodeSet: {
404
+ user: string;
405
+ referralCode: string;
406
+ };
399
407
  }
400
408
  export type ParsedMultiLevelReferralNFTEventRaw = {
401
409
  [K in keyof RawMultiLevelReferralNFTEventTypes]: BaseEventRaw & {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aiia-vault-sdk",
3
- "version": "1.2.1",
3
+ "version": "1.2.2",
4
4
  "description": "SDK for AIIA Vault Contract",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",